Commit 91d7e7ac by J"orn Rennecke Committed by Joern Rennecke

reload1.c (choose_reload_regs): If using an equivalence from find_equiv_reg and…

reload1.c (choose_reload_regs): If using an equivalence from find_equiv_reg and reg_reloaded_valid is not set...

	* reload1.c (choose_reload_regs): If using an equivalence from
	find_equiv_reg and reg_reloaded_valid is not set for this register,
	clear the associated spill_reg_store.

From-SVN: r21035
parent 9da46522
Thu Jul 9 18:24:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* reload1.c (choose_reload_regs): If using an equivalence from
find_equiv_reg and reg_reloaded_valid is not set for this register,
clear the associated spill_reg_store.
Thu Jul 9 18:12:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> Thu Jul 9 18:12:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* reload1.c (emit_reload_insns): If an output reload copies only * reload1.c (emit_reload_insns): If an output reload copies only
......
...@@ -5861,6 +5861,12 @@ choose_reload_regs (insn, avoid_return_reg) ...@@ -5861,6 +5861,12 @@ choose_reload_regs (insn, avoid_return_reg)
reload_reg_rtx[r] = equiv; reload_reg_rtx[r] = equiv;
reload_inherited[r] = 1; reload_inherited[r] = 1;
/* If reg_reloaded_valid is not set for this register,
there might be a stale spill_reg_store lying around.
We must clear it, since otherwise emit_reload_insns
might delete the store. */
if (! TEST_HARD_REG_BIT (reg_reloaded_valid, regno))
spill_reg_store[regno] = NULL_RTX;
/* If any of the hard registers in EQUIV are spill /* If any of the hard registers in EQUIV are spill
registers, mark them as in use for this insn. */ registers, mark them as in use for this insn. */
for (k = 0; k < nr; k++) for (k = 0; k < nr; k++)
......
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