From: Jeff Law Date: Fri, 29 Jan 1993 17:09:30 +0000 (-0700) Subject: reload.c (find_reloads_toplev): When handling a (subreg (reg)) where (reg) will be... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f2fbfe928c613bf60a0db04ff744f25ccc5bdfdf;p=gcc.git reload.c (find_reloads_toplev): When handling a (subreg (reg)) where (reg) will be replaced by a memory... * reload.c (find_reloads_toplev): When handling a (subreg (reg)) where (reg) will be replaced by a memory reference, if the memory address is invalid for the mode of the subreg, then search the memory address for reloads. From-SVN: r3385 --- diff --git a/gcc/reload.c b/gcc/reload.c index c75f15859db..3ea095ceeb9 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3477,7 +3477,9 @@ find_reloads_toplev (x, ind_levels, is_set_dest) #endif && (reg_equiv_address[regno] != 0 || (reg_equiv_mem[regno] != 0 - && ! offsettable_memref_p (reg_equiv_mem[regno])))) + && (! strict_memory_address_p (GET_MODE (x), + XEXP (reg_equiv_mem[regno], 0)) + || ! offsettable_memref_p (reg_equiv_mem[regno]))))) { int offset = SUBREG_WORD (x) * UNITS_PER_WORD; rtx addr = (reg_equiv_address[regno] ? reg_equiv_address[regno]