summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2026-06-08 12:01:54 -0700
committerMichael Tokarev <mjt@tls.msk.ru>2026-06-11 23:28:19 +0300
commitf80b72b4a50b14ca43832df6da870104ce368d50 (patch)
tree7036444313ca91b86b9e5eb61ba1d7baa3a0e78c
parent3ab9adb3cb70108cb45c58da868e0f99776c0df1 (diff)
downloadqemu-f80b72b4a50b14ca43832df6da870104ce368d50.tar.gz
qemu-f80b72b4a50b14ca43832df6da870104ce368d50.zip
fpu: Handle all rounding modes in partsN_uncanon_normal
Missed float_round_nearest_even_max when recomputing round. CC: qemu-stable@nongnu.org Fixes: 72330260cdb ("softfloat: Add float_round_nearest_even_max") Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Message-id: 20260608190155.637067-2-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org> (cherry picked from commit a6a1f92d5a2368882e9b6851b6ab8b9a56d71a8c) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r--fpu/softfloat-parts.c.inc1
1 files changed, 1 insertions, 0 deletions
diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc
index 3c323c0cec..edfcbeb80b 100644
--- a/fpu/softfloat-parts.c.inc
+++ b/fpu/softfloat-parts.c.inc
@@ -431,6 +431,7 @@ static void partsN(uncanon_normal)(FloatPartsN *p, float_status *s,
/* Need to recompute round-to-even/round-to-odd. */
switch (s->float_rounding_mode) {
case float_round_nearest_even:
+ case float_round_nearest_even_max:
if (N > 64 && frac_lsb == 0) {
inc = ((p->frac_hi & 1) ||
(p->frac_lo & round_mask) != frac_lsbm1