arm.c (vfp3_const_double_index): Copy signed results of REAL_VALUE_TO_INT into unsign...
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 5 Jul 2007 21:33:30 +0000 (21:33 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 5 Jul 2007 21:33:30 +0000 (21:33 +0000)
* arm.c (vfp3_const_double_index): Copy signed results of
REAL_VALUE_TO_INT into unsigned vars.

From-SVN: r126390

gcc/ChangeLog
gcc/config/arm/arm.c

index 5a55a9cca84fa2b2340d1a442cf64ff4e046ddad..eca91d63cbc799aab67d6c3cd2c4c9274d2b390f 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (vfp3_const_double_index): Copy signed results of
+       REAL_VALUE_TO_INT into unsigned vars.
+
 2007-07-05  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/32639
index 216925688494ab61524a344b5cb0d2919dd67fb3..b03a3030437a91b962465f9b5480cabd8849777c 100644 (file)
@@ -5768,6 +5768,7 @@ vfp3_const_double_index (rtx x)
   int sign, exponent;
   unsigned HOST_WIDE_INT mantissa, mant_hi;
   unsigned HOST_WIDE_INT mask;
+  HOST_WIDE_INT m1, m2;
   int point_pos = 2 * HOST_BITS_PER_WIDE_INT - 1;
 
   if (!TARGET_VFP3 || GET_CODE (x) != CONST_DOUBLE)
@@ -5788,7 +5789,9 @@ vfp3_const_double_index (rtx x)
      WARNING: If there's ever a VFP version which uses more than 2 * H_W_I - 1
      bits for the mantissa, this may fail (low bits would be lost).  */
   real_ldexp (&m, &r, point_pos - exponent);
-  REAL_VALUE_TO_INT (&mantissa, &mant_hi, m);
+  REAL_VALUE_TO_INT (&m1, &m2, m);
+  mantissa = m1;
+  mant_hi = m2;
 
   /* If there are bits set in the low part of the mantissa, we can't
      represent this value.  */