diff options
author | Richard Henderson <rth@cygnus.com> | 1999-01-19 13:11:00 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-01-19 13:11:00 -0800 |
commit | c14c652997970714f0b92df466ccebdf1e5cddfa (patch) | |
tree | 6cbc95c507e6dcf525866303f9711448fb153af7 /gcc/expr.c | |
parent | 959f341d33f89a6551aed23d619bdea881262731 (diff) | |
download | gcc-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.c | 32 |
1 files changed, 12 insertions, 20 deletions
@@ -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; |