fpu: Drop parts_default_nan
Use parts{64,128}_default_nan at each call site. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Richard Henderson committed
Apr 26, 2026 at 18:48 UTC
325953010725ffb34b2c8b89d41a1e18b72918a4
2 files changed
+23
-24
fpu/softfloat-parts.c.inc
+12
-12
@@ -21,14 +21,14 @@ static void partsN(return_nan)(FloatPartsN *a, float_status *s)
21
case float_class_snan:
22
float_raise(float_flag_invalid | float_flag_invalid_snan, s);
23
if (s->default_nan_mode) {
24
- parts_default_nan(a, s);
24
+ partsN(default_nan)(a, s);
25
} else {
26
parts_silence_nan(a, s);
27
}
28
break;
29
case float_class_qnan:
30
if (s->default_nan_mode) {
31
- parts_default_nan(a, s);
31
+ partsN(default_nan)(a, s);
32
}
33
break;
34
default:
@@ -49,7 +49,7 @@ static FloatPartsN *partsN(pick_nan)(FloatPartsN *a, FloatPartsN *b,
49
}
50
51
if (s->default_nan_mode) {
52
- parts_default_nan(a, s);
52
+ partsN(default_nan)(a, s);
53
return a;
54
}
55
@@ -184,7 +184,7 @@ static FloatPartsN *partsN(pick_nan_muladd)(FloatPartsN *a, FloatPartsN *b,
184
return ret;
185
186
default_nan:
187
- parts_default_nan(a, s);
187
+ partsN(default_nan)(a, s);
188
return a;
189
}
190
@@ -281,7 +281,7 @@ static void partsN(uncanon_e4m3_overflow)(FloatPartsN *p, float_status *s,
281
p->exp = fmt->exp_max;
282
p->frac_hi = E4M3_NORMAL_FRAC_MAX;
283
} else {
284
- parts_default_nan(p, s);
284
+ partsN(default_nan)(p, s);
285
}
286
}
287
@@ -568,7 +568,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, FloatPartsN *b,
568
}
569
/* Inf - Inf */
570
float_raise(float_flag_invalid | float_flag_invalid_isi, s);
571
- parts_default_nan(a, s);
571
+ partsN(default_nan)(a, s);
572
return a;
573
}
574
} else {
@@ -641,7 +641,7 @@ static FloatPartsN *partsN(mul)(FloatPartsN *a, FloatPartsN *b,
641
/* Inf * Zero == NaN */
642
if (unlikely(ab_mask == float_cmask_infzero)) {
643
float_raise(float_flag_invalid | float_flag_invalid_imz, s);
644
- parts_default_nan(a, s);
644
+ partsN(default_nan)(a, s);
645
return a;
646
}
647
@@ -796,7 +796,7 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *a, FloatPartsN *b,
796
goto finish_sign;
797
798
d_nan:
799
- parts_default_nan(a, s);
799
+ partsN(default_nan)(a, s);
800
return a;
801
}
802
@@ -864,7 +864,7 @@ static FloatPartsN *partsN(div)(FloatPartsN *a, FloatPartsN *b,
864
return a;
865
866
d_nan:
867
- parts_default_nan(a, s);
867
+ partsN(default_nan)(a, s);
868
return a;
869
}
870
@@ -896,7 +896,7 @@ static FloatPartsN *partsN(modrem)(FloatPartsN *a, FloatPartsN *b,
896
/* Inf % N; N % 0 */
897
if (a->cls == float_class_inf || b->cls == float_class_zero) {
898
float_raise(float_flag_invalid, s);
899
- parts_default_nan(a, s);
899
+ partsN(default_nan)(a, s);
900
return a;
901
}
902
@@ -1118,7 +1118,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status *status,
1118
1119
d_nan:
1120
float_raise(float_flag_invalid | float_flag_invalid_sqrt, status);
1121
- parts_default_nan(a, status);
1121
+ partsN(default_nan)(a, status);
1122
}
1123
1124
/*
@@ -1879,5 +1879,5 @@ static void partsN(log2)(FloatPartsN *a, float_status *s, const FloatFmt *fmt)
1879
1880
d_nan:
1881
float_raise(float_flag_invalid, s);
1882
- parts_default_nan(a, s);
1882
+ partsN(default_nan)(a, s);
1883
}
fpu/softfloat.c
+11
-12
@@ -779,7 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const FloatParts128 *p)
779
FloatParts128 *: parts128_##NAME, \
780
FloatParts256 *: parts256_##NAME)
781
782
-#define parts_default_nan(P, S) PARTS_GENERIC_64_128(default_nan, P)(P, S)
782
#define parts_silence_nan(P, S) PARTS_GENERIC_64_128(silence_nan, P)(P, S)
783
784
static void parts64_return_nan(FloatParts64 *a, float_status *s);
@@ -3156,7 +3155,7 @@ float32 floatx80_to_float32(floatx80 a, float_status *s)
3155
if (floatx80_unpack_canonical(&p128, a, s)) {
3156
parts_float_to_float_narrow(&p64, &p128, s);
3157
} else {
3159
- parts_default_nan(&p64, s);
3158
+ parts64_default_nan(&p64, s);
3159
}
3160
return float32_round_pack_canonical(&p64, s);
3161
}
@@ -3169,7 +3168,7 @@ float64 floatx80_to_float64(floatx80 a, float_status *s)
3168
if (floatx80_unpack_canonical(&p128, a, s)) {
3169
parts_float_to_float_narrow(&p64, &p128, s);
3170
} else {
3172
- parts_default_nan(&p64, s);
3171
+ parts64_default_nan(&p64, s);
3172
}
3173
return float64_round_pack_canonical(&p64, s);
3174
}
@@ -3181,7 +3180,7 @@ float128 floatx80_to_float128(floatx80 a, float_status *s)
3180
if (floatx80_unpack_canonical(&p, a, s)) {
3181
parts_float_to_float(&p, s);
3182
} else {
3184
- parts_default_nan(&p, s);
3183
+ parts128_default_nan(&p, s);
3184
}
3185
return float128_round_pack_canonical(&p, s);
3186
}
@@ -3486,7 +3485,7 @@ static int32_t floatx80_to_int32_scalbn(floatx80 a, FloatRoundMode rmode,
3485
FloatParts128 p;
3486
3487
if (!floatx80_unpack_canonical(&p, a, s)) {
3489
- parts_default_nan(&p, s);
3488
+ parts128_default_nan(&p, s);
3489
}
3490
return parts_float_to_sint(&p, rmode, scale, INT32_MIN, INT32_MAX, s);
3491
}
@@ -3497,7 +3496,7 @@ static int64_t floatx80_to_int64_scalbn(floatx80 a, FloatRoundMode rmode,
3496
FloatParts128 p;
3497
3498
if (!floatx80_unpack_canonical(&p, a, s)) {
3500
- parts_default_nan(&p, s);
3499
+ parts128_default_nan(&p, s);
3500
}
3501
return parts_float_to_sint(&p, rmode, scale, INT64_MIN, INT64_MAX, s);
3502
}
@@ -4984,7 +4983,7 @@ float16 float16_default_nan(float_status *status)
4983
{
4984
FloatParts64 p;
4985
4987
- parts_default_nan(&p, status);
4986
+ parts64_default_nan(&p, status);
4987
p.frac >>= float16_params.frac_shift;
4988
return float16_pack_raw(&p);
4989
}
@@ -4993,7 +4992,7 @@ float32 float32_default_nan(float_status *status)
4992
{
4993
FloatParts64 p;
4994
4996
- parts_default_nan(&p, status);
4995
+ parts64_default_nan(&p, status);
4996
p.frac >>= float32_params.frac_shift;
4997
return float32_pack_raw(&p);
4998
}
@@ -5002,7 +5001,7 @@ float64 float64_default_nan(float_status *status)
5001
{
5002
FloatParts64 p;
5003
5005
- parts_default_nan(&p, status);
5004
+ parts64_default_nan(&p, status);
5005
p.frac >>= float64_params.frac_shift;
5006
return float64_pack_raw(&p);
5007
}
@@ -5011,7 +5010,7 @@ float128 float128_default_nan(float_status *status)
5010
{
5011
FloatParts128 p;
5012
5014
- parts_default_nan(&p, status);
5013
+ parts128_default_nan(&p, status);
5014
frac_shr(&p, float128_params.frac_shift);
5015
return float128_pack_raw(&p);
5016
}
@@ -5020,7 +5019,7 @@ bfloat16 bfloat16_default_nan(float_status *status)
5019
{
5020
FloatParts64 p;
5021
5023
- parts_default_nan(&p, status);
5022
+ parts64_default_nan(&p, status);
5023
p.frac >>= bfloat16_params.frac_shift;
5024
return bfloat16_pack_raw(&p);
5025
}
@@ -5537,7 +5536,7 @@ static void parts_s390_divide_to_integer(FloatParts64 *a, FloatParts64 *b,
5536
*n = *r;
5537
*cc = 1;
5538
} else if (a->cls == float_class_inf || b->cls == float_class_zero) {
5540
- parts_default_nan(r, status);
5539
+ parts64_default_nan(r, status);
5540
*n = *r;
5541
*cc = 1;
5542
status->float_exception_flags |= float_flag_invalid;