(eliminate_regs_in_insn): Don't recopy new_body if it is an asm_operands insn.
authorRichard Stallman <rms@gnu.org>
Wed, 16 Dec 1992 01:30:36 +0000 (01:30 +0000)
committerRichard Stallman <rms@gnu.org>
Wed, 16 Dec 1992 01:30:36 +0000 (01:30 +0000)
From-SVN: r2877

gcc/reload1.c

index 261be0540eee7ee7cd787157a220a74b887f2c04..6175b3c42b35fc631364c946b0ad8b72c3cbc486 100644 (file)
@@ -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.  */