aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regmove.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a3d5c7..ba0cfcf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net>
+
+ * regmove.c (copy_src_to_dest) Do not create src->dest move
+ for unchanging destination.
+
2000-03-04 Mark Mitchell <mark@codesourcery.com>
* function.h (struct sequence_stack): Remove rtl_expr.
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 2e7b48d..ba9d2e7 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -760,6 +760,7 @@ copy_src_to_dest (insn, src, dest, old_max_uid)
if (GET_CODE (src) == REG
&& REG_LIVE_LENGTH (REGNO (src)) > 0
&& GET_CODE (dest) == REG
+ && !RTX_UNCHANGING_P (dest)
&& REG_LIVE_LENGTH (REGNO (dest)) > 0
&& (set = single_set (insn)) != NULL_RTX
&& !reg_mentioned_p (dest, SET_SRC (set))