OSDN Git Service

* local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Feb 2001 01:03:47 +0000 (01:03 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Feb 2001 01:03:47 +0000 (01:03 +0000)
        new instruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39400 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/local-alloc.c

index a9b2e37..522c2c5 100644 (file)
@@ -1,3 +1,8 @@
+2001-02-01  Richard Henderson  <rth@redhat.com>
+
+       * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
+       new instruction.
+
 2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/sh/crt1.asm (main_k): Modified so that start calls
index 1abe902..c743ad6 100644 (file)
@@ -1141,9 +1141,13 @@ update_equiv_regs ()
                  rtx new_insn;
 
                  new_insn = emit_insn_before (PATTERN (equiv_insn), insn);
-                 REG_NOTES (PREV_INSN (insn)) = REG_NOTES (equiv_insn);
+                 REG_NOTES (new_insn) = REG_NOTES (equiv_insn);
                  REG_NOTES (equiv_insn) = 0;
 
+                 /* Make sure this insn is recognized before reload begins,
+                    otherwise eliminate_regs_in_insn will abort.  */
+                 INSN_CODE (new_insn) = INSN_CODE (equiv_insn);
+
                  PUT_CODE (equiv_insn, NOTE);
                  NOTE_LINE_NUMBER (equiv_insn) = NOTE_INSN_DELETED;
                  NOTE_SOURCE_FILE (equiv_insn) = 0;