cse.c (cse_insn): Correct usage of simplify_replace_rtx when updating the REG_EQUAL...
authorRoger Sayle <roger@eyesopen.com>
Sun, 4 Apr 2004 21:44:41 +0000 (21:44 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 4 Apr 2004 21:44:41 +0000 (21:44 +0000)
* cse.c (cse_insn): Correct usage of simplify_replace_rtx when
updating the REG_EQUAL note on an insn's libcall_insn.

From-SVN: r80400

gcc/ChangeLog
gcc/cse.c

index acf8454abf124e5ff8a757509626c9960deb19ea..fcfbfdccee9b674d6326ee8f2d10295afc0f906b 100644 (file)
@@ -1,3 +1,8 @@
+2004-04-04  Roger Sayle  <roger@eyesopen.com>
+
+       * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
+       updating the REG_EQUAL note on an insn's libcall_insn.
+
 2004-04-04  Roger Sayle  <roger@eyesopen.com>
 
        * df.h: Tidy up whitespace in the definitions of the DF_ flags.
index 38f6ef06004634b7f0ba3a3b427d31ef55eba9b1..0a7281ecc426b4bbe75c00eabd4b714e6b19faa9 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -5402,8 +5402,13 @@ cse_insn (rtx insn, rtx libcall_insn)
                  && (GET_CODE (sets[i].orig_src) == REG
                      || GET_CODE (sets[i].orig_src) == SUBREG
                      || GET_CODE (sets[i].orig_src) == MEM))
-               simplify_replace_rtx (REG_NOTES (libcall_insn),
-                                     sets[i].orig_src, copy_rtx (new));
+               {
+                 rtx note = find_reg_equal_equiv_note (libcall_insn);
+                 if (note != 0)
+                   XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0),
+                                                          sets[i].orig_src,
+                                                          copy_rtx (new));
+               }
 
              /* The result of apply_change_group can be ignored; see
                 canon_reg.  */