Module Name: src Committed By: rin Date: Sat Oct 7 11:58:31 UTC 2023
Modified Files: src/external/gpl3/gcc.old/dist/gcc: recog.c Log Message: gcc.old: PR port-vax/57646 patch provided by Kalvis Duckmanton [4/21] 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. XXXRO: Hidden within ``#ifdef NB_FIX_VAX_BACKEND'' and enabled only for vax at the moment. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/external/gpl3/gcc.old/dist/gcc/recog.c 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.old/dist/gcc/recog.c diff -u src/external/gpl3/gcc.old/dist/gcc/recog.c:1.11 src/external/gpl3/gcc.old/dist/gcc/recog.c:1.12 --- src/external/gpl3/gcc.old/dist/gcc/recog.c:1.11 Mon Feb 20 02:11:07 2023 +++ src/external/gpl3/gcc.old/dist/gcc/recog.c Sat Oct 7 11:58:31 2023 @@ -992,7 +992,12 @@ 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) +#ifdef NB_FIX_VAX_BACKEND + && (maybe_gt (SUBREG_BYTE (op), GET_MODE_SIZE (GET_MODE (sub))) + || !multiple_p (SUBREG_BYTE (op), GET_MODE_SIZE (mode))) +#endif + ) return 0; if (REG_P (sub)