OSDN Git Service

Cope with down shifting a 32 bit constant on a 64 bit host.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1999 16:12:44 +0000 (16:12 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 1999 16:12:44 +0000 (16:12 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29655 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index 587c950..b6723ea 100644 (file)
@@ -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.
index 0e556db..61d55d0 100644 (file)
@@ -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;
            }