summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-19 08:23:43 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-19 08:23:43 +0000
commitca80cbc1af5e3e826e8aec47506f81fa8a55f3f2 (patch)
tree35e9c00cbd8aaeaac270c6ca8f832d1d8d5d9542
parent3afd54309961bf2b11e2be38e239ca689ac59d0a (diff)
downloadppe42-gcc-ca80cbc1af5e3e826e8aec47506f81fa8a55f3f2.tar.gz
ppe42-gcc-ca80cbc1af5e3e826e8aec47506f81fa8a55f3f2.zip
* emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
the register lowpart is a TRULY_NOOP_TRUNCATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73731 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/emit-rtl.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 931f74c2aeb..9c1b245aee8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-19 Richard SAndiford <rsandifo@redhat.com>
+
+ * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
+ the register lowpart is a TRULY_NOOP_TRUNCATION.
+
2003-11-19 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (print_reg): Handle QI and HI modes for
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 9c50e2371fd..a528641a6f9 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1356,6 +1356,8 @@ gen_lowpart (enum machine_mode mode, rtx x)
/* The following exposes the use of "x" to CSE. */
if (GET_MODE_SIZE (GET_MODE (x)) <= UNITS_PER_WORD
&& SCALAR_INT_MODE_P (GET_MODE (x))
+ && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (mode),
+ GET_MODE_BITSIZE (GET_MODE (x)))
&& ! no_new_pseudos)
return gen_lowpart (mode, force_reg (GET_MODE (x), x));
OpenPOWER on IntegriCloud