From a06dece2dca2ff620b857210db8cce5d01ea208b Mon Sep 17 00:00:00 2001 From: rms Date: Tue, 11 May 1993 04:42:22 +0000 Subject: (__floatdisf): Use DFtype for intermediate values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4421 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/libgcc2.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gcc/libgcc2.c') diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index 433627edf90..9dcccbe3d01 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 -- cgit v1.2.1