From cbc65a8f22b29680f30a2c86da36be4aedb88b60 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 26 Aug 2019 19:00:13 -0700 Subject: target/ppc: Set float_tininess_before_rounding at cpu reset As defined in Power 3.0 section 4.4.4 "Underflow Exception", a tiny result is detected before rounding. Fixes: https://bugs.launchpad.net/qemu/+bug/1841491 Reported-by: Paul Clarke Signed-off-by: Richard Henderson Message-Id: <20190827020013.27154-1-richard.henderson@linaro.org> Signed-off-by: David Gibson --- target/ppc/translate_init.inc.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'target/ppc') diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index 4a21ed7289..023138c2f9 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -10461,6 +10461,10 @@ static void ppc_cpu_reset(CPUState *s) s->exception_index = POWERPC_EXCP_NONE; env->error_code = 0; + /* tininess for underflow is detected before rounding */ + set_float_detect_tininess(float_tininess_before_rounding, + &env->fp_status); + for (i = 0; i < ARRAY_SIZE(env->spr_cb); i++) { ppc_spr_t *spr = &env->spr_cb[i]; -- cgit v1.2.3