@samitouri / QOSamiQemu / commits / 845970afdf

fpu: Return struct from float128_unpack_raw

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

Richard Henderson committed Apr 25, 2026 at 19:47 UTC 845970afdf12b8eed39a7a0f4d353fe0b0743713
1 file changed +4 -5
fpu/softfloat.c
+4 -5
@@ -646,12 +646,12 @@ static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw)
646 };
647 }
648
649 -static void QEMU_FLATTEN float128_unpack_raw(FloatParts128 *p, float128 f)
649 +static FloatParts128 float128_unpack_raw(float128 f)
650 {
651 const int f_size = float128_params.frac_size - 64;
652 const int e_size = float128_params.exp_size;
653
654 - *p = (FloatParts128) {
654 + return (FloatParts128) {
655 .cls = float_class_unclassified,
656 .sign = extract64(f.high, f_size + e_size, 1),
657 .exp = extract64(f.high, f_size, e_size),
@@ -1586,7 +1586,7 @@ static float64 float64r32_round_pack_canonical(FloatParts64 *p,
1586 static void float128_unpack_canonical(FloatParts128 *p, float128 f,
1587 float_status *s)
1588 {
1589 - float128_unpack_raw(p, f);
1589 + *p = float128_unpack_raw(f);
1590 parts128_canonicalize(p, s, &float128_params);
1591 }
1592
@@ -4845,9 +4845,8 @@ bfloat16 bfloat16_silence_nan(bfloat16 a, float_status *status)
4845
4846 float128 float128_silence_nan(float128 a, float_status *status)
4847 {
4848 - FloatParts128 p;
4848 + FloatParts128 p = float128_unpack_raw(a);
4849
4850 - float128_unpack_raw(&p, a);
4850 frac128_shl(&p, float128_params.frac_shift);
4851 parts128_silence_nan(&p, status);
4852 frac128_shr(&p, float128_params.frac_shift);