@samitouri / QOSamiQemu / commits / 78dd9b70a3

fpu: Return struct from float8_e5m2_unpack_canonical

Inline float8_e5m2_unpack_raw at the same time. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Richard Henderson committed Apr 25, 2026 at 18:34 UTC 78dd9b70a30909ec60cc7222ea408182143ee991
1 file changed +5 -12
fpu/softfloat.c
+5 -12
@@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw)
646 };
647 }
648
649 -static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5m2 f)
650 -{
651 - *p = unpack_raw64(&float8_e5m2_params, f);
652 -}
653 -
649 static void QEMU_FLATTEN float16_unpack_raw(FloatParts64 *p, float16 f)
650 {
651 *p = unpack_raw64(&float16_params, f);
@@ -1477,11 +1472,11 @@ static FloatParts64 float8_e4m3_unpack_canonical(float8_e4m3 f, float_status *s)
1472 return p;
1473 }
1474
1480 -static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f,
1481 - float_status *s)
1475 +static FloatParts64 float8_e5m2_unpack_canonical(float8_e5m2 f, float_status *s)
1476 {
1483 - float8_e5m2_unpack_raw(p, f);
1484 - parts64_canonicalize(p, s, &float8_e5m2_params);
1477 + FloatParts64 p = unpack_raw64(&float8_e5m2_params, f);
1478 + parts64_canonicalize(&p, s, &float8_e5m2_params);
1479 + return p;
1480 }
1481
1482 static void float16a_unpack_canonical(FloatParts64 *p, float16 f,
@@ -2703,9 +2698,7 @@ bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float_status *s)
2698
2699 bfloat16 float8_e5m2_to_bfloat16(float8_e5m2 a, float_status *s)
2700 {
2706 - FloatParts64 p;
2707 -
2708 - float8_e5m2_unpack_canonical(&p, a, s);
2701 + FloatParts64 p = float8_e5m2_unpack_canonical(a, s);
2702 parts64_float_to_float(&p, s);
2703 return bfloat16_round_pack_canonical(&p, s);
2704 }