aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-02-01 17:03:47 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-02-01 17:03:47 -0800
commitcad33336eefc5d1cab42875de40c814685346265 (patch)
tree11041299cb2bcefe24a78b05b79fb9dbe39a9896
parent3b60dd8e1086b8d477a6fe09c7fe9a07bf410c51 (diff)
downloadgcc-cad33336eefc5d1cab42875de40c814685346265.zip
gcc-cad33336eefc5d1cab42875de40c814685346265.tar.gz
gcc-cad33336eefc5d1cab42875de40c814685346265.tar.bz2
local-alloc.c (update_equiv_regs): Copy INSN_CODE to the new instruction.
* local-alloc.c (update_equiv_regs): Copy INSN_CODE to the new instruction. From-SVN: r39400
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/local-alloc.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9b2e37..522c2c5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 1abe902..c743ad6 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -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;