]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
fpu: Return struct from float8_e4m3_unpack_canonical
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 25 Apr 2026 08:24:37 +0000 (18:24 +1000)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 29 Apr 2026 22:08:10 +0000 (08:08 +1000)
Inline float8_e4m3_unpack_raw at the same time.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
fpu/softfloat.c

index c1d014048487dcebd03c5c0e6acc1128c9841068..c1b03f30abba66c4c48c8632a259e93c9e5bf0ae 100644 (file)
@@ -646,11 +646,6 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw)
     };
 }
 
-static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4m3 f)
-{
-    *p = unpack_raw64(&float8_e4m3_params, f);
-}
-
 static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5m2 f)
 {
     *p = unpack_raw64(&float8_e5m2_params, f);
@@ -1475,11 +1470,11 @@ static FloatParts64 float4_e2m1_unpack_canonical(float4_e2m1 f, float_status *s)
     return p;
 }
 
-static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f,
-                                         float_status *s)
+static FloatParts64 float8_e4m3_unpack_canonical(float8_e4m3 f, float_status *s)
 {
-    float8_e4m3_unpack_raw(p, f);
-    parts64_canonicalize(p, s, &float8_e4m3_params);
+    FloatParts64 p = unpack_raw64(&float8_e4m3_params, f);
+    parts64_canonicalize(&p, s, &float8_e4m3_params);
+    return p;
 }
 
 static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f,
@@ -2701,9 +2696,7 @@ float8_e4m3 float4_e2m1_to_float8_e4m3(float4_e2m1 a, float_status *s)
 
 bfloat16 float8_e4m3_to_bfloat16(float8_e4m3 a, float_status *s)
 {
-    FloatParts64 p;
-
-    float8_e4m3_unpack_canonical(&p, a, s);
+    FloatParts64 p = float8_e4m3_unpack_canonical(a, s);
     parts64_float_to_float(&p, s);
     return bfloat16_round_pack_canonical(&p, s);
 }