aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2002-03-09 12:26:57 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2002-03-09 07:26:57 -0500
commit0a7ec76355b0e53a3f48727f7ae8e3c5f812458b (patch)
tree12440dc89b9e1de4bda2fdbf9fa3d3df9e47b7d5
parentabfabb9850c06baa1514ea9306f0ae95c2a71783 (diff)
downloadgcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.zip
gcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.tar.gz
gcc-0a7ec76355b0e53a3f48727f7ae8e3c5f812458b.tar.bz2
* combine.c (make_extraction): Don't make extension of CONST_INT.
From-SVN: r50491
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/combine.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 68eeab4..897ff2e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sat Mar 9 07:20:01 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * combine.c (make_extraction): Don't make extension of CONST_INT.
+
2002-03-09 Alexandre Oliva <aoliva@redhat.com>
* config/mips/mips.c (function_arg_pass_by_reference): Force to 0
diff --git a/gcc/combine.c b/gcc/combine.c
index b734231..fb344ca 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6032,6 +6032,9 @@ make_extraction (mode, inner, pos, pos_rtx, len,
if (mode == tmode)
return new;
+ if (GET_CODE (new) == CONST_INT)
+ return trunc_int_for_mode (INTVAL (new), mode);
+
/* If we know that no extraneous bits are set, and that the high
bit is not set, convert the extraction to the cheaper of
sign and zero extension, that are equivalent in these cases. */