diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/combine.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 587c950..b6723ea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com> + + * combine.c (simplify_comparison): Cope with downshifting a 32 bit + constant on a 64 bit host. Patch supplied by Geoffrey Keating + <geoffk@cygnus.com>. + Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk> * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. diff --git a/gcc/combine.c b/gcc/combine.c index 0e556db..61d55d0 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; } |