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)