aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@hxi.com>2001-07-26 15:23:07 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2001-07-26 15:23:07 +0000
commitf302906571e3723a05f9ffdab31945638191579e (patch)
tree5ea867d251e380ffa592a47c4077c505752661ac /gcc
parent4a121cc34cd8153380aee3246979b8fb35e2a88f (diff)
downloadgcc-f302906571e3723a05f9ffdab31945638191579e.zip
gcc-f302906571e3723a05f9ffdab31945638191579e.tar.gz
gcc-f302906571e3723a05f9ffdab31945638191579e.tar.bz2
regmove.c (regmove_optimize): Don't replace a reg with another reg of a different mode.
* regmove.c (regmove_optimize): Don't replace a reg with another reg of a different mode. From-SVN: r44399
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regmove.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8bc8788..431fcff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-07-26 Kazu Hirata <kazu@hxi.com>
+
+ * regmove.c (regmove_optimize): Don't replace a reg with
+ another reg of a different mode.
+
2001-07-26 Andrew MacLeod <amacleod@redhat.com>
* params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 7e49143..587acea 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -1244,6 +1244,9 @@ regmove_optimize (f, nregs, regmove_dump_file)
if (! regclass_compatible_p (src_class, dst_class))
continue;
+ if (GET_MODE (src) != GET_MODE (dst))
+ continue;
+
if (fixup_match_1 (insn, set, src, src_subreg, dst, pass,
op_no, match_no,
regmove_dump_file))