diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 587c95053395..b6723ea9039b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Sep 24 17:10:56 1999 Nick Clifton + + * combine.c (simplify_comparison): Cope with downshifting a 32 bit + constant on a 64 bit host. Patch supplied by Geoffrey Keating + . + Fri Sep 24 10:48:10 1999 Bernd Schmidt * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. diff --git a/gcc/combine.c b/gcc/combine.c index 0e556db4ab9b..61d55d0c893e 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -10364,10 +10364,10 @@ simplify_comparison (code, pop0, pop1) { /* We must perform a logical shift, not an arithmetic one, as we want the top N bits of C to be zero. */ - unsigned HOST_WIDE_INT temp = const_op; + unsigned HOST_WIDE_INT temp = const_op & GET_MODE_MASK (mode); temp >>= INTVAL (XEXP (op0, 1)); - op1 = GEN_INT (temp); + op1 = GEN_INT (trunc_int_for_mode (temp, mode)); op0 = XEXP (op0, 0); continue; }