* 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
+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
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++)