summaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-02 01:03:47 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-02 01:03:47 +0000
commit9c89b179c0ec09ec7855e0d20b13a48180809c47 (patch)
tree11041299cb2bcefe24a78b05b79fb9dbe39a9896 /gcc/local-alloc.c
parent1c1033dd4a273339c63c98572592b70b2c68147e (diff)
downloadgcc-9c89b179c0ec09ec7855e0d20b13a48180809c47.tar.gz
* local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
new instruction. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39400 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r--gcc/local-alloc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 1abe902015c..c743ad63fe8 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;