Peter Maydell <[email protected]> writes: > In commit d81ce0ef2c4f105 we added an extra float_status field > fp_status_fp16 for Arm, but forgot to initialize it correctly > by setting it to float_tininess_before_rounding. This currently > will only cause problems for the new V8_FP16 feature, since the > float-to-float conversion code doesn't use it yet. The effect > would be that we failed to set the Underflow IEEE exception flag > in all the cases where we should. > > Add the missing initialization. > > Fixes: d81ce0ef2c4f105 > Cc: [email protected] > Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Alex Bennée <[email protected]> > --- > target/arm/cpu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index d175c5e94f..7939c6b8ae 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -324,6 +324,8 @@ static void arm_cpu_reset(CPUState *s) > &env->vfp.fp_status); > set_float_detect_tininess(float_tininess_before_rounding, > &env->vfp.standard_fp_status); > + set_float_detect_tininess(float_tininess_before_rounding, > + &env->vfp.fp_status_f16); > #ifndef CONFIG_USER_ONLY > if (kvm_enabled()) { > kvm_arm_reset_vcpu(cpu); -- Alex Bennée
