+Tue Jan 19 21:08:20 1999 Richard Henderson <rth@cygnus.com>
+
+ * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit
+ clobber during or after reload.
+
Tue Jan 19 16:56:03 1999 Richard Henderson <rth@cygnus.com>
* genoutput.c (name_for_index): New function.
}
else
{
- /* Show the output dies here. This is only necessary for pseudos. */
- if (x != y)
+ /* Show the output dies here. This is necessary for pseudos;
+ hard regs shouldn't appear here except as return values.
+ We never want to emit such a clobber after reload. */
+ if (x != y
+ && ! (reload_in_progress || reload_completed))
{
- rtx reg = x;
-
- while (GET_CODE (reg) == SUBREG)
- reg = SUBREG_REG (reg);
-
- if (GET_CODE (reg) == REG
- && REGNO (reg) >= FIRST_PSEUDO_REGISTER)
- emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
}
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
}
#endif
- /* Show the output dies here. This is only necessary for pseudos. */
- if (x != y)
+ /* Show the output dies here. This is necessary for pseudos;
+ hard regs shouldn't appear here except as return values.
+ We never want to emit such a clobber after reload. */
+ if (x != y
+ && ! (reload_in_progress || reload_completed))
{
- rtx reg = x;
-
- while (GET_CODE (reg) == SUBREG)
- reg = SUBREG_REG (reg);
-
- if (GET_CODE (reg) == REG
- && REGNO (reg) >= FIRST_PSEUDO_REGISTER)
- emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
}
for (i = 0;