From f2fbfe928c613bf60a0db04ff744f25ccc5bdfdf Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 29 Jan 1993 10:09:30 -0700 Subject: [PATCH] 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 --- gcc/reload.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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] -- 2.30.2