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
This commit is contained in:
parent
9da4652288
commit
91d7e7acb1
|
@ -1,3 +1,9 @@
|
||||||
|
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)
|
||||||
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++)
|
||||||
|
|
Loading…
Reference in New Issue