diff options
author | Richard Stallman <rms@gnu.org> | 1993-05-11 04:42:22 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-05-11 04:42:22 +0000 |
commit | 56b03d5f895fbcfa6e5bd125542b3d24249ca939 (patch) | |
tree | 3b2353e3282207922f59e925f48062ca493d3cdf /gcc | |
parent | 6a25991dfbe2124c53172f9ef595f8908c7d0c60 (diff) | |
download | gcc-56b03d5f895fbcfa6e5bd125542b3d24249ca939.zip gcc-56b03d5f895fbcfa6e5bd125542b3d24249ca939.tar.gz gcc-56b03d5f895fbcfa6e5bd125542b3d24249ca939.tar.bz2 |
(__floatdisf): Use DFtype for intermediate values.
From-SVN: r4421
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/libgcc2.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index 433627e..9dcccbe 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -1018,7 +1018,10 @@ SFtype __floatdisf (u) DItype u; { - SFtype f; + /* Do the calculation in DFmode + so that we don't lose any of the precision of the high word + while multiplying it. */ + DFtype f; SItype negate = 0; if (u < 0) @@ -1029,7 +1032,7 @@ __floatdisf (u) f *= HIGH_HALFWORD_COEFF; f += (USItype) (u & (HIGH_WORD_COEFF - 1)); - return (negate ? -f : f); + return (SFtype) (negate ? -f : f); } #endif |