aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-05-15 14:58:42 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-05-15 14:58:42 +0100
commitbcc531f0364796104df4443d17f99b5fb494eca2 (patch)
treee784bd2c3998c015e8c745f9dba02f2dadb2c371
parent333583757c5e910b040bef793974773635ce1918 (diff)
downloadqemu-bcc531f0364796104df4443d17f99b5fb494eca2.zip
qemu-bcc531f0364796104df4443d17f99b5fb494eca2.tar.gz
qemu-bcc531f0364796104df4443d17f99b5fb494eca2.tar.bz2
target/arm: Fix fp_status_f16 tininess before rounding
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: qemu-stable@nongnu.org Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20180512004311.9299-16-richard.henderson@linaro.org
-rw-r--r--target/arm/cpu.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index d175c5e..7939c6b 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);