OSDN Git Service

* cse.c (cse_insn): Correct usage of simplify_replace_rtx when
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Apr 2004 21:44:41 +0000 (21:44 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Apr 2004 21:44:41 +0000 (21:44 +0000)
updating the REG_EQUAL note on an insn's libcall_insn.

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

gcc/ChangeLog
gcc/cse.c

index acf8454..fcfbfdc 100644 (file)
@@ -1,5 +1,10 @@
 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.
 
 2004-04-03  Roger Sayle  <roger@eyesopen.com>
index 38f6ef0..0a7281e 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.  */