aboutsummaryrefslogtreecommitdiff
path: root/gcc/regmove.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-11-05 09:03:43 +0000
committerJakub Jelinek <jakub@redhat.com>2008-11-05 09:03:43 +0000
commitc0d351cf9523d21c09d0db58bd7ec87edaa5dd89 (patch)
treef0edb9fb397c84ec24d8b9a03f63b4caddcae0d5 /gcc/regmove.c
parent3e1fdf07d9662b6a79e0d45115d25b54ca9e1e6f (diff)
svn merge -r140949:141593 svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch/redhat/gcc-4_3-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_3-branch@141601 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r--gcc/regmove.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 5a2f9c92ed9..eb2e0f48a50 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -686,7 +686,16 @@ optimize_reg_copy_2 (rtx insn, rtx dest, rtx src)
{
if (reg_mentioned_p (dest, PATTERN (q)))
{
+ rtx note;
+
PATTERN (q) = replace_rtx (PATTERN (q), dest, src);
+ note = FIND_REG_INC_NOTE (q, dest);
+ if (note)
+ {
+ remove_note (q, note);
+ REG_NOTES (q)
+ = gen_rtx_EXPR_LIST (REG_INC, src, REG_NOTES (q));
+ }
df_insn_rescan (q);
}