On 02/11/2014 05:51 AM, Peter Maydell wrote: > @@ -2376,7 +2376,7 @@ float32 float32_muladd(float32 a, float32 b, float32 c, int flags STATUS_PARAM) > if (cExp == 0) { > normalizeFloat32Subnormal(cSig, &cExp, &cSig); > } > - cExp--; > + cExp -= 2; > cSig = (cSig | 0x00800000) << 7; > return roundAndPackFloat32(cSign ^ signflip, cExp, cSig STATUS_VAR); > } > @@ -4107,7 +4107,7 @@ float64 float64_muladd(float64 a, float64 b, float64 c, int flags STATUS_PARAM) > if (cExp == 0) { > normalizeFloat64Subnormal(cSig, &cExp, &cSig); > } > - cExp--; > + cExp -= 2; > cSig = (cSig | 0x0010000000000000ULL) << 10; > return roundAndPackFloat64(cSign ^ signflip, cExp, cSig STATUS_VAR); > } This should obviously be folded into the previous patch. Probably with a comment reminding about roundAndPackFloat wanting an off-by-one exponent. Otherwise both get Reviewed-by: Richard Henderson <rth@xxxxxxxxxxx> r~ _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm