OSDN Git Service

* simplify-rtx.c (simplify_immed_subreg): Correctly extract the
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 16:01:18 +0000 (16:01 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 16:01:18 +0000 (16:01 +0000)
high word of an integral CONST_DOUBLE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75725 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c

index 724ede3..a3970ca 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
+
+       * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
+       high word of an integral CONST_DOUBLE.
+
 2004-01-09  Paul Brook  <paul@codesourcery.com>
 
        * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
index 615e09f..5664bca 100644 (file)
@@ -3041,7 +3041,8 @@ simplify_immed_subreg (enum machine_mode outermode, rtx op,
                *vp++ = CONST_DOUBLE_LOW (el) >> i;
              while (i < HOST_BITS_PER_WIDE_INT * 2 && i < elem_bitsize)
                {
-                 *vp++ = CONST_DOUBLE_HIGH (el) >> i;
+                 *vp++
+                   = CONST_DOUBLE_HIGH (el) >> (i - HOST_BITS_PER_WIDE_INT);
                  i += value_bit;
                }
              /* It shouldn't matter what's done here, so fill it with