Commit 3c785e47 by J"orn Rennecke Committed by Joern Rennecke

reload1.c (choose_reload_regs): Don't set reload_override_in if EQUIV is…

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
parent 54303b5c
Tue Jul 7 23:03:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* 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 <amylaar@cygnus.co.uk> Tue Jul 7 21:23:36 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN
......
...@@ -5826,14 +5826,30 @@ choose_reload_regs (insn, avoid_return_reg) ...@@ -5826,14 +5826,30 @@ choose_reload_regs (insn, avoid_return_reg)
break; break;
} }
/* JRV: If the equiv register we have found is /* If the equiv register we have found is explicitly clobbered
explicitly clobbered in the current insn, mark but in the current insn, it depends on the reload type if we
don't use, as above. */ 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)) if (equiv != 0 && regno_clobbered_p (regno, insn))
{ {
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; reload_override_in[r] = equiv;
/* Fall through. */
default:
equiv = 0; equiv = 0;
break;
}
} }
/* If we found an equivalent reg, say no code need be generated /* If we found an equivalent reg, say no code need be generated
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment