From: Richard Kenner Date: Mon, 16 May 1994 21:52:21 +0000 (-0400) Subject: (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE. X-Git-Tag: misc/cutover-egcs-0~6629 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc29e2ad034ea733563d45b26ad3f15e3ae74022;p=thirdparty%2Fgcc.git (split_double): Fix arg of REAL_VALUE_TO_TARGET_DOUBLE. From-SVN: r7314 --- diff --git a/gcc/final.c b/gcc/final.c index 06d03720274b..861165625ec6 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)