aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cse.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index acf8454..fcfbfdc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/cse.c b/gcc/cse.c
index 38f6ef0..0a7281e 100644
--- 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. */