|
@@ -915,6 +915,8 @@ vfp_single_multiply_accumulate(int sd, int sn, s32 m, u32 fpscr, u32 negate, cha
|
|
|
v = vfp_get_float(sd);
|
|
v = vfp_get_float(sd);
|
|
|
pr_debug("VFP: s%u = %08x\n", sd, v);
|
|
pr_debug("VFP: s%u = %08x\n", sd, v);
|
|
|
vfp_single_unpack(&vsn, v);
|
|
vfp_single_unpack(&vsn, v);
|
|
|
|
|
+ if (vsn.exponent == 0 && vsn.significand)
|
|
|
|
|
+ vfp_single_normalise_denormal(&vsn);
|
|
|
if (negate & NEG_SUBTRACT)
|
|
if (negate & NEG_SUBTRACT)
|
|
|
vsn.sign = vfp_sign_negate(vsn.sign);
|
|
vsn.sign = vfp_sign_negate(vsn.sign);
|
|
|
|
|
|