aboutsummaryrefslogtreecommitdiff
path: root/gcc
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 /gcc
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
Diffstat (limited to 'gcc')
-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. */