aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-01-19 13:11:00 -0800
committerRichard Henderson <rth@gcc.gnu.org>1999-01-19 13:11:00 -0800
commitc14c652997970714f0b92df466ccebdf1e5cddfa (patch)
tree6cbc95c507e6dcf525866303f9711448fb153af7 /gcc/expr.c
parent959f341d33f89a6551aed23d619bdea881262731 (diff)
downloadgcc-c14c652997970714f0b92df466ccebdf1e5cddfa.zip
gcc-c14c652997970714f0b92df466ccebdf1e5cddfa.tar.gz
gcc-c14c652997970714f0b92df466ccebdf1e5cddfa.tar.bz2
expr.c (emit_move_insn_1): Revert 17 Dec change.
* expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit clobber during or after reload. From-SVN: r24772
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d84849d..88ce156 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2578,17 +2578,13 @@ emit_move_insn_1 (x, y)
}
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)
@@ -2618,17 +2614,13 @@ emit_move_insn_1 (x, y)
}
#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;