aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@redhat.com>2002-09-19 23:39:34 +0000
committerJim Wilson <wilson@gcc.gnu.org>2002-09-19 16:39:34 -0700
commitff0765200c2e107d15c78b53cf2b215a6a7638c8 (patch)
treec0941e6a8ac98aeec26ccf196ddf2c21706f911e
parent2ee2d707a7dea2dad8874d10ee9f1844116c2fea (diff)
downloadgcc-ff0765200c2e107d15c78b53cf2b215a6a7638c8.zip
gcc-ff0765200c2e107d15c78b53cf2b215a6a7638c8.tar.gz
gcc-ff0765200c2e107d15c78b53cf2b215a6a7638c8.tar.bz2
fix subreg optimization bug introduced 2002-05-25
fix subreg optimization bug introduced 2002-05-25 * combine.c (simplify_set): When optimizing a subreg src with a cc0 dest, use GET_MODE (src) for mask instead of inner_mode. From-SVN: r57323
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/combine.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9da276c..0b22646 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-19 Jim Wilson <wilson@redhat.com>
+
+ * combine.c (simplify_set): When optimizing a subreg src with a
+ cc0 dest, use GET_MODE (src) for mask instead of inner_mode.
+
2002-09-19 Dale Johannesen <dalej@apple.com>
* combine.c (make_extraction): Don't create
invalid subreg.
diff --git a/gcc/combine.c b/gcc/combine.c
index c72d81e..2313619 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -5229,7 +5229,7 @@ simplify_set (x)
if (GET_MODE_BITSIZE (inner_mode) <= HOST_BITS_PER_WIDE_INT
&& (nonzero_bits (inner, inner_mode)
< ((unsigned HOST_WIDE_INT) 1
- << (GET_MODE_BITSIZE (inner_mode) - 1))))
+ << (GET_MODE_BITSIZE (GET_MODE (src)) - 1))))
{
SUBST (SET_SRC (x), inner);
src = SET_SRC (x);