@samitouri / QOSamiQemu / commits / 3dd8c6f07a

fpu: Return struct from float4_e2m1_unpack_canonical

Inline float4_e2m1_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:21 UTC 3dd8c6f07a06cf7b093f0f1b682caee30fd68d30
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 float4_e2m1_unpack_raw(FloatParts64 *p, float4_e2m1 f)
650 -{
651 - *p = unpack_raw64(&float4_e2m1_params, f);
652 -}
653 -
649 static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4m3 f)
650 {
651 *p = unpack_raw64(&float8_e4m3_params, f);
@@ -1473,11 +1468,11 @@ static const uint16_t rsqrt_tab[128] = {
1468 * Pack/unpack routines with a specific FloatFmt.
1469 */
1470
1476 -static void float4_e2m1_unpack_canonical(FloatParts64 *p, float4_e2m1 f,
1477 - float_status *s)
1471 +static FloatParts64 float4_e2m1_unpack_canonical(float4_e2m1 f, float_status *s)
1472 {
1479 - float4_e2m1_unpack_raw(p, f);
1480 - parts64_canonicalize(p, s, &float4_e2m1_params);
1473 + FloatParts64 p = unpack_raw64(&float4_e2m1_params, f);
1474 + parts64_canonicalize(&p, s, &float4_e2m1_params);
1475 + return p;
1476 }
1477
1478 static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f,
@@ -2699,9 +2694,7 @@ static void parts_float_to_float_widen(FloatParts128 *a, FloatParts64 *b,
2694
2695 float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a, float_status *s)
2696 {
2702 - FloatParts64 p;
2703 -
2704 - float4_e2m1_unpack_canonical(&p, a, s);
2697 + FloatParts64 p = float4_e2m1_unpack_canonical(a, s);
2698 parts64_float_to_float(&p, s);
2699 return float8_e4m3_round_pack_canonical(&p, s, false);
2700 }