diff options
author | Richard Stallman <rms@gnu.org> | 1992-12-16 01:30:36 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-12-16 01:30:36 +0000 |
commit | 4d411872e32166719e75538a644af0aa82555f03 (patch) | |
tree | eadb661418224c6a1afd77bfa94d6c0b01111082 | |
parent | 262121f07030ee05586e59aad705082990776b21 (diff) | |
download | gcc-4d411872e32166719e75538a644af0aa82555f03.zip gcc-4d411872e32166719e75538a644af0aa82555f03.tar.gz gcc-4d411872e32166719e75538a644af0aa82555f03.tar.bz2 |
(eliminate_regs_in_insn): Don't recopy new_body if it is an asm_operands insn.
From-SVN: r2877
-rw-r--r-- | gcc/reload1.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 261be05..6175b3c 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3001,7 +3001,9 @@ eliminate_regs_in_insn (insn, replace) things can go wrong if find_reload swaps commutative operands and one is inside RTL that has been copied while the other is not. */ - if (! replace) + /* Don't copy an asm_operands because (1) there's no need and (2) + copy_rtx can't do it properly when there are multiple outputs. */ + if (! replace && asm_noperands (new_body) < 0) new_body = copy_rtx (new_body); /* If we had a move insn but now we don't, rerecognize it. */ |