aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c4
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;
}