summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoseph Myers2020-06-08 18:56:47 +0200
committerPaolo Bonzini2020-06-26 15:39:38 +0200
commit566601f1f9d972e44214696d3cb320e6c18880aa (patch)
treeca7e471b36606222433e6e4b839a41fe6b2a68b6
parentsoftfloat: do not return pseudo-denormal from floatx80 remainder (diff)
downloadqemu-566601f1f9d972e44214696d3cb320e6c18880aa.tar.gz
qemu-566601f1f9d972e44214696d3cb320e6c18880aa.tar.xz
qemu-566601f1f9d972e44214696d3cb320e6c18880aa.zip
softfloat: do not set denominator high bit for floatx80 remainder
The floatx80 remainder implementation unnecessarily sets the high bit of bSig explicitly. By that point in the function, arguments that are invalid, zero, infinity or NaN have already been handled and subnormals have been through normalizeFloatx80Subnormal, so the high bit will already be set. Remove the unnecessary code. Signed-off-by: Joseph Myers <joseph@codesourcery.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <alpine.DEB.2.21.2006081656220.23637@digraph.polyomino.org.uk> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--fpu/softfloat.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fpu/softfloat.c b/fpu/softfloat.c
index ab50088c35..1ee3342715 100644
--- a/fpu/softfloat.c
+++ b/fpu/softfloat.c
@@ -5751,7 +5751,6 @@ floatx80 floatx80_modrem(floatx80 a, floatx80 b, bool mod,
if ( aSig0 == 0 ) return a;
normalizeFloatx80Subnormal( aSig0, &aExp, &aSig0 );
}
- bSig |= UINT64_C(0x8000000000000000);
zSign = aSign;
expDiff = aExp - bExp;
aSig1 = 0;