arm.c (vfp3_const_double_index): Copy signed results of REAL_VALUE_TO_INT into unsigned vars.
* arm.c (vfp3_const_double_index): Copy signed results of REAL_VALUE_TO_INT into unsigned vars. From-SVN: r126390
This commit is contained in:
parent
e11e491dbf
commit
8e39e9afe0
@ -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
|
||||
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user