Module Name: src
Committed By: kalvisd
Date: Sun Sep 29 06:17:31 UTC 2024
Modified Files:
src/external/gpl3/gcc/dist/gcc: recog.cc
Log Message:
gcc: vax: subregister offset constraints
Constrain offsets within subregister expressions to be a multiple of
the size of the data type requested. That is, offsets for a word
sized (2 byte) subregister may only be multiples of 2
OK rin@
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 src/external/gpl3/gcc/dist/gcc/recog.cc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/gcc/recog.cc
diff -u src/external/gpl3/gcc/dist/gcc/recog.cc:1.1.1.1 src/external/gpl3/gcc/dist/gcc/recog.cc:1.2
--- src/external/gpl3/gcc/dist/gcc/recog.cc:1.1.1.1 Sun Jul 30 05:20:58 2023
+++ src/external/gpl3/gcc/dist/gcc/recog.cc Sun Sep 29 06:17:31 2024
@@ -1484,7 +1484,11 @@ general_operand (rtx op, machine_mode mo
??? This is a kludge. */
if (!reload_completed
&& maybe_ne (SUBREG_BYTE (op), 0)
- && MEM_P (sub))
+ && MEM_P (sub)
+ && (maybe_gt (SUBREG_BYTE (op), GET_MODE_SIZE (GET_MODE (sub)))
+ || !multiple_p (SUBREG_BYTE (op), GET_MODE_SIZE (mode))
+ )
+ )
return false;
if (REG_P (sub)