On 8/26/19 9:00 PM, Richard Henderson wrote: > As defined in Power 3.0 section 4.4.4 "Underflow Exception", > a tiny result is detected before rounding.
Responded in the bug: https://bugs.launchpad.net/qemu/+bug/1841491/comments/3 In my testing, this works for "double", but not "float". > Fixes: https://bugs.launchpad.net/qemu/+bug/1841491 > Reported-by: Paul Clarke <p...@us.ibm.com> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/ppc/translate_init.inc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > 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]; PC