diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2007-07-05 21:33:30 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2007-07-05 21:33:30 +0000 |
commit | 8e39e9afe08cb675620db0024d5eae9dc9aba777 (patch) | |
tree | a643ac1d8da8680f26b4d11494dc16e02f3910fa | |
parent | e11e491dbfa0d4b134e653647a0bf1b645e17327 (diff) | |
download | gcc-8e39e9afe08cb675620db0024d5eae9dc9aba777.zip gcc-8e39e9afe08cb675620db0024d5eae9dc9aba777.tar.gz gcc-8e39e9afe08cb675620db0024d5eae9dc9aba777.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a55a9c..eca91d6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 2169256..b03a303 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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. */ |