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>
|
||||
|
||||
* 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_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
|
||||
registers, mark them as in use for this insn. */
|
||||
for (k = 0; k < nr; k++)
|
||||
|
|
Loading…
Reference in New Issue