@samitouri / QOSamiQemu / commits / 3a98a5b77e

fpu: Return structure from unpack_raw64

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:14 UTC 3a98a5b77e300c9eddff05a0f3e28b0354e15fe8
1 file changed +9 -9
fpu/softfloat.c
+9 -9
@@ -633,12 +633,12 @@ static const FloatFmt floatx80_params[3] = {
633 };
634
635 /* Unpack a float to parts, but do not canonicalize. */
636 -static void unpack_raw64(FloatParts64 *r, const FloatFmt *fmt, uint64_t raw)
636 +static FloatParts64 unpack_raw64(const FloatFmt *fmt, uint64_t raw)
637 {
638 const int f_size = fmt->frac_size;
639 const int e_size = fmt->exp_size;
640
641 - *r = (FloatParts64) {
641 + return (FloatParts64) {
642 .cls = float_class_unclassified,
643 .sign = extract64(raw, f_size + e_size, 1),
644 .exp = extract64(raw, f_size, e_size),
@@ -648,37 +648,37 @@ static void unpack_raw64(FloatParts64 *r, const FloatFmt *fmt, uint64_t raw)
648
649 static void QEMU_FLATTEN float4_e2m1_unpack_raw(FloatParts64 *p, float4_e2m1 f)
650 {
651 - unpack_raw64(p, &float4_e2m1_params, f);
651 + *p = unpack_raw64(&float4_e2m1_params, f);
652 }
653
654 static void QEMU_FLATTEN float8_e4m3_unpack_raw(FloatParts64 *p, float8_e4m3 f)
655 {
656 - unpack_raw64(p, &float8_e4m3_params, f);
656 + *p = unpack_raw64(&float8_e4m3_params, f);
657 }
658
659 static void QEMU_FLATTEN float8_e5m2_unpack_raw(FloatParts64 *p, float8_e5m2 f)
660 {
661 - unpack_raw64(p, &float8_e5m2_params, f);
661 + *p = unpack_raw64(&float8_e5m2_params, f);
662 }
663
664 static void QEMU_FLATTEN float16_unpack_raw(FloatParts64 *p, float16 f)
665 {
666 - unpack_raw64(p, &float16_params, f);
666 + *p = unpack_raw64(&float16_params, f);
667 }
668
669 static void QEMU_FLATTEN bfloat16_unpack_raw(FloatParts64 *p, bfloat16 f)
670 {
671 - unpack_raw64(p, &bfloat16_params, f);
671 + *p = unpack_raw64(&bfloat16_params, f);
672 }
673
674 static void QEMU_FLATTEN float32_unpack_raw(FloatParts64 *p, float32 f)
675 {
676 - unpack_raw64(p, &float32_params, f);
676 + *p = unpack_raw64(&float32_params, f);
677 }
678
679 static void QEMU_FLATTEN float64_unpack_raw(FloatParts64 *p, float64 f)
680 {
681 - unpack_raw64(p, &float64_params, f);
681 + *p = unpack_raw64(&float64_params, f);
682 }
683
684 static void QEMU_FLATTEN floatx80_unpack_raw(FloatParts128 *p, floatx80 f)