* combine.c (make_extraction): Don't make extension of CONST_INT.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Sat, 9 Mar 2002 12:26:57 +0000 (12:26 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 9 Mar 2002 12:26:57 +0000 (07:26 -0500)
From-SVN: r50491

gcc/ChangeLog
gcc/combine.c

index 68eeab47a7890981da83511e065f67281037a926..897ff2e1d3549a2c01d58863a273ff3b38cb2864 100644 (file)
@@ -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
index b734231480bffa27724f45802de43f73a2af2e37..fb344ca10432e7ade02e5fac9a49fa6bf0f903be 100644 (file)
@@ -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.  */