[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/6] softfloat: fix floatx80 remainder pseudo-denormal check f
From: |
Joseph Myers |
Subject: |
[PATCH v2 2/6] softfloat: fix floatx80 remainder pseudo-denormal check for zero |
Date: |
Mon, 8 Jun 2020 16:55:49 +0000 |
User-agent: |
Alpine 2.21 (DEB 202 2017-01-01) |
The floatx80 remainder implementation ignores the high bit of the
significand when checking whether an operand (numerator) with zero
exponent is zero. This means it mishandles a pseudo-denormal
representation of 0x1p-16382L by treating it as zero. Fix this by
checking the whole significand instead.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
fpu/softfloat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fpu/softfloat.c b/fpu/softfloat.c
index 7b1ce7664f..091847beb9 100644
--- a/fpu/softfloat.c
+++ b/fpu/softfloat.c
@@ -5726,7 +5726,7 @@ floatx80 floatx80_modrem(floatx80 a, floatx80 b, bool mod,
normalizeFloatx80Subnormal( bSig, &bExp, &bSig );
}
if ( aExp == 0 ) {
- if ( (uint64_t) ( aSig0<<1 ) == 0 ) return a;
+ if ( aSig0 == 0 ) return a;
normalizeFloatx80Subnormal( aSig0, &aExp, &aSig0 );
}
bSig |= UINT64_C(0x8000000000000000);
--
2.17.1
--
Joseph S. Myers
joseph@codesourcery.com
- [PATCH v2 0/6] softfloat, target/i386: fprem, fprem1 fixes, Joseph Myers, 2020/06/08
- [PATCH v2 1/6] softfloat: merge floatx80_mod and floatx80_rem, Joseph Myers, 2020/06/08
- [PATCH v2 2/6] softfloat: fix floatx80 remainder pseudo-denormal check for zero,
Joseph Myers <=
- [PATCH v2 3/6] softfloat: do not return pseudo-denormal from floatx80 remainder, Joseph Myers, 2020/06/08
- [PATCH v2 4/6] softfloat: do not set denominator high bit for floatx80 remainder, Joseph Myers, 2020/06/08
- [PATCH v2 5/6] softfloat: return low bits of quotient from floatx80_modrem, Joseph Myers, 2020/06/08
- [PATCH v2 6/6] target/i386: reimplement fprem, fprem1 using floatx80 operations, Joseph Myers, 2020/06/08
- Re: [PATCH v2 0/6] softfloat, target/i386: fprem, fprem1 fixes, Paolo Bonzini, 2020/06/12