From bc29e2ad034ea733563d45b26ad3f15e3ae74022 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 16 May 1994 17:52:21 -0400 Subject: [PATCH] (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE. From-SVN: r7314 --- gcc/final.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/final.c b/gcc/final.c index 06d03720274..861165625ec 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -2859,11 +2859,17 @@ split_double (value, first, second) else { #ifdef REAL_ARITHMETIC - REAL_VALUE_TYPE r; HOST_WIDE_INT l[2]; + REAL_VALUE_TYPE r; long l[2]; REAL_VALUE_FROM_CONST_DOUBLE (r, value); + + /* Note, this converts the REAL_VALUE_TYPE to the target's + format, splits up the floating point double and outputs + exactly 32 bits of it into each of l[0] and l[1] -- + not necessarily BITS_PER_WORD bits. */ REAL_VALUE_TO_TARGET_DOUBLE (r, l); - *first = GEN_INT (l[0]); - *second = GEN_INT (l[1]); + + *first = GEN_INT ((HOST_WIDE_INT) l[0]); + *second = GEN_INT ((HOST_WIDE_INT) l[1]); #else if ((HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT || HOST_BITS_PER_WIDE_INT != BITS_PER_WORD) -- 2.30.2