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)

Reply via email to