diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68eeab47a78..897ff2e1d35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Mar 9 07:20:01 2002 Richard Kenner + + * combine.c (make_extraction): Don't make extension of CONST_INT. + 2002-03-09 Alexandre Oliva * config/mips/mips.c (function_arg_pass_by_reference): Force to 0 diff --git a/gcc/combine.c b/gcc/combine.c index b734231480b..fb344ca1043 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. */