diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cse.c | 9 |
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> @@ -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. */ |