From cad33336eefc5d1cab42875de40c814685346265 Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Thu, 1 Feb 2001 17:03:47 -0800
Subject: [PATCH] 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
---
 gcc/ChangeLog     | 5 +++++
 gcc/local-alloc.c | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9b2e373f3c..522c2c5ed8a 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 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;
-- 
2.30.2