From: J"orn Rennecke Date: Tue, 7 Jul 1998 15:08:34 +0000 (+0000) Subject: reload1.c (choose_reload_regs): Don't set reload_override_in if EQUIV is clobbered... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c785e47dc2e3fef919b5badac1f78a33d59ecb8;p=gcc.git reload1.c (choose_reload_regs): Don't set reload_override_in if EQUIV is clobbered in INSN and the reload is... * reload1.c (choose_reload_regs): Don't set reload_override_in if EQUIV is clobbered in INSN and the reload is done after INSN. From-SVN: r20999 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04cd1d8dd65..226d54c646e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Jul 7 23:03:34 1998 J"orn Rennecke + + * reload1.c (choose_reload_regs): Don't set reload_override_in + if EQUIV is clobbered in INSN and the reload is done after INSN. + Tue Jul 7 21:23:36 1998 J"orn Rennecke * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN diff --git a/gcc/reload1.c b/gcc/reload1.c index 456abb04edd..b6c0d8d8509 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5826,14 +5826,30 @@ choose_reload_regs (insn, avoid_return_reg) break; } - /* JRV: If the equiv register we have found is - explicitly clobbered in the current insn, mark but - don't use, as above. */ + /* If the equiv register we have found is explicitly clobbered + in the current insn, it depends on the reload type if we + can use it, use it for reload_override_in, or not at all. + In particular, we then can't use EQUIV for a + RELOAD_FOR_OUTPUT_ADDRESS reload. */ if (equiv != 0 && regno_clobbered_p (regno, insn)) { - reload_override_in[r] = equiv; - equiv = 0; + switch (reload_when_needed[r]) + { + case RELOAD_FOR_OTHER_ADDRESS: + case RELOAD_FOR_INPADDR_ADDRESS: + case RELOAD_FOR_INPUT_ADDRESS: + case RELOAD_FOR_OPADDR_ADDR: + break; + case RELOAD_OTHER: + case RELOAD_FOR_INPUT: + case RELOAD_FOR_OPERAND_ADDRESS: + reload_override_in[r] = equiv; + /* Fall through. */ + default: + equiv = 0; + break; + } } /* If we found an equivalent reg, say no code need be generated