From 8e39e9afe08cb675620db0024d5eae9dc9aba777 Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Thu, 5 Jul 2007 21:33:30 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a55a9cca84..eca91d63cbc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-07-05 Richard Earnshaw + + * arm.c (vfp3_const_double_index): Copy signed results of + REAL_VALUE_TO_INT into unsigned vars. + 2007-07-05 Richard Guenther PR middle-end/32639 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 21692568849..b03a3030437 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. */ -- 2.30.2