qemu/fpu
Richard Henderson 98b3cff753 softfloat: Adjust parts_uncanon_normal for floatx80
With floatx80_precision_x, the rounding happens across
the break between words.  Notice this case with

  frac_lsb = round_mask + 1 -> 0

and check the bits in frac_hi as needed.

In addition, since frac_shift == 0, we won't implicitly clear
round_mask via the right-shift, so explicitly clear those bits.
This fixes rounding for floatx80_precision_[sd].

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2021-06-03 14:09:02 -07:00
..
softfloat-parts-addsub.c.inc softfloat: Move addsub_floats to softfloat-parts.c.inc 2021-05-16 07:13:51 -05:00
softfloat-parts.c.inc softfloat: Adjust parts_uncanon_normal for floatx80 2021-06-03 14:09:02 -07:00
softfloat-specialize.c.inc softfloat: Convert float128_default_nan to parts 2021-05-16 07:13:51 -05:00
softfloat.c softfloat: Introduce Floatx80RoundPrec 2021-06-03 14:04:02 -07:00