Commit d30e8ef0 by Bernd Schmidt Committed by Jeff Law

reload1.c (emit_reload_insns): When rewriting the SET_DEST of a previous insn to…

reload1.c (emit_reload_insns): When rewriting the SET_DEST of a previous insn to store directly into our...

        * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
        previous insn to store directly into our reload register, make sure
        that if the source of the previous insn is a reload register, its
        spill_reg_store and spill_reg_stored_to values are cleared.

From-SVN: r23550
parent 6ba89f8e
Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
* reload1.c (emit_reload_insns): When rewriting the SET_DEST of a
previous insn to store directly into our reload register, make sure
that if the source of the previous insn is a reload register, its
spill_reg_store and spill_reg_stored_to values are cleared.
Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.md (floatunssidf2_internal splitter): Use base register
......
......@@ -6774,6 +6774,18 @@ emit_reload_insns (chain)
{
/* Store into the reload register instead of the pseudo. */
SET_DEST (PATTERN (temp)) = reloadreg;
/* If the previous insn is an output reload, the source is
a reload register, and its spill_reg_store entry will
contain the previous destination. This is now
invalid. */
if (GET_CODE (SET_SRC (PATTERN (temp))) == REG
&& REGNO (SET_SRC (PATTERN (temp))) < FIRST_PSEUDO_REGISTER)
{
spill_reg_store[REGNO (SET_SRC (PATTERN (temp)))] = 0;
spill_reg_stored_to[REGNO (SET_SRC (PATTERN (temp)))] = 0;
}
/* If these are the only uses of the pseudo reg,
pretend for GDB it lives in the reload reg we used. */
if (REG_N_DEATHS (REGNO (old)) == 1
......
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