fpu: Use get_default_nan_mode everywhere
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Richard Henderson committed
May 1, 2026 at 20:36 UTC
04281c6e7b5198969bfa978e2cc921fb3bb0d75e
4 files changed
+23
-23
fpu/softfloat-parts.c.inc
+4
-4
@@ -20,14 +20,14 @@ FloatPartsN partsN(return_nan)(const FloatPartsN *a, float_status *s)
20
switch (a->cls) {
21
case float_class_snan:
22
float_raise(float_flag_invalid | float_flag_invalid_snan, s);
23
- if (s->default_nan_mode) {
23
+ if (get_default_nan_mode(s)) {
24
return partsN(default_nan)(s);
25
} else {
26
return partsN(silence_nan)(a, s);
27
}
28
break;
29
case float_class_qnan:
30
- if (s->default_nan_mode) {
30
+ if (get_default_nan_mode(s)) {
31
return partsN(default_nan)(s);
32
}
33
break;
@@ -49,7 +49,7 @@ FloatPartsN partsN(pick_nan)(const FloatPartsN *a, const FloatPartsN *b,
49
have_snan = true;
50
}
51
52
- if (s->default_nan_mode) {
52
+ if (get_default_nan_mode(s)) {
53
return partsN(default_nan)(s);
54
}
55
@@ -134,7 +134,7 @@ static FloatPartsN partsN(pick_nan_muladd)(const FloatPartsN *a,
134
float_raise(float_flag_invalid | float_flag_invalid_imz, s);
135
}
136
137
- if (s->default_nan_mode) {
137
+ if (get_default_nan_mode(s)) {
138
/*
139
* We guarantee not to require the target to tell us how to
140
* pick a NaN if we're always returning the default NaN.
target/arm/tcg/helper-a64.c
+6
-6
@@ -273,11 +273,11 @@ uint32_t HELPER(frecpx_f16)(uint32_t a, float_status *fpst)
273
float16 nan = a;
274
if (float16_is_signaling_nan(a, fpst)) {
275
float_raise(float_flag_invalid, fpst);
276
- if (!fpst->default_nan_mode) {
276
+ if (!get_default_nan_mode(fpst)) {
277
nan = float16_silence_nan(a, fpst);
278
}
279
}
280
- if (fpst->default_nan_mode) {
280
+ if (get_default_nan_mode(fpst)) {
281
nan = float16_default_nan(fpst);
282
}
283
return nan;
@@ -305,11 +305,11 @@ float32 HELPER(frecpx_f32)(float32 a, float_status *fpst)
305
float32 nan = a;
306
if (float32_is_signaling_nan(a, fpst)) {
307
float_raise(float_flag_invalid, fpst);
308
- if (!fpst->default_nan_mode) {
308
+ if (!get_default_nan_mode(fpst)) {
309
nan = float32_silence_nan(a, fpst);
310
}
311
}
312
- if (fpst->default_nan_mode) {
312
+ if (get_default_nan_mode(fpst)) {
313
nan = float32_default_nan(fpst);
314
}
315
return nan;
@@ -337,11 +337,11 @@ float64 HELPER(frecpx_f64)(float64 a, float_status *fpst)
337
float64 nan = a;
338
if (float64_is_signaling_nan(a, fpst)) {
339
float_raise(float_flag_invalid, fpst);
340
- if (!fpst->default_nan_mode) {
340
+ if (!get_default_nan_mode(fpst)) {
341
nan = float64_silence_nan(a, fpst);
342
}
343
}
344
- if (fpst->default_nan_mode) {
344
+ if (get_default_nan_mode(fpst)) {
345
nan = float64_default_nan(fpst);
346
}
347
return nan;
target/arm/tcg/vfp_helper.c
+12
-12
@@ -690,11 +690,11 @@ uint32_t HELPER(recpe_f16)(uint32_t input, float_status *fpst)
690
float16 nan = f16;
691
if (float16_is_signaling_nan(f16, fpst)) {
692
float_raise(float_flag_invalid, fpst);
693
- if (!fpst->default_nan_mode) {
693
+ if (!get_default_nan_mode(fpst)) {
694
nan = float16_silence_nan(f16, fpst);
695
}
696
}
697
- if (fpst->default_nan_mode) {
697
+ if (get_default_nan_mode(fpst)) {
698
nan = float16_default_nan(fpst);
699
}
700
return nan;
@@ -743,11 +743,11 @@ static float32 do_recpe_f32(float32 input, float_status *fpst, bool rpres)
743
float32 nan = f32;
744
if (float32_is_signaling_nan(f32, fpst)) {
745
float_raise(float_flag_invalid, fpst);
746
- if (!fpst->default_nan_mode) {
746
+ if (!get_default_nan_mode(fpst)) {
747
nan = float32_silence_nan(f32, fpst);
748
}
749
}
750
- if (fpst->default_nan_mode) {
750
+ if (get_default_nan_mode(fpst)) {
751
nan = float32_default_nan(fpst);
752
}
753
return nan;
@@ -802,11 +802,11 @@ float64 HELPER(recpe_f64)(float64 input, float_status *fpst)
802
float64 nan = f64;
803
if (float64_is_signaling_nan(f64, fpst)) {
804
float_raise(float_flag_invalid, fpst);
805
- if (!fpst->default_nan_mode) {
805
+ if (!get_default_nan_mode(fpst)) {
806
nan = float64_silence_nan(f64, fpst);
807
}
808
}
809
- if (fpst->default_nan_mode) {
809
+ if (get_default_nan_mode(fpst)) {
810
nan = float64_default_nan(fpst);
811
}
812
return nan;
@@ -945,11 +945,11 @@ uint32_t HELPER(rsqrte_f16)(uint32_t input, float_status *s)
945
float16 nan = f16;
946
if (float16_is_signaling_nan(f16, s)) {
947
float_raise(float_flag_invalid, s);
948
- if (!s->default_nan_mode) {
948
+ if (!get_default_nan_mode(s)) {
949
nan = float16_silence_nan(f16, s);
950
}
951
}
952
- if (s->default_nan_mode) {
952
+ if (get_default_nan_mode(s)) {
953
nan = float16_default_nan(s);
954
}
955
return nan;
@@ -994,11 +994,11 @@ static float32 do_rsqrte_f32(float32 input, float_status *s, bool rpres)
994
float32 nan = f32;
995
if (float32_is_signaling_nan(f32, s)) {
996
float_raise(float_flag_invalid, s);
997
- if (!s->default_nan_mode) {
997
+ if (!get_default_nan_mode(s)) {
998
nan = float32_silence_nan(f32, s);
999
}
1000
}
1001
- if (s->default_nan_mode) {
1001
+ if (get_default_nan_mode(s)) {
1002
nan = float32_default_nan(s);
1003
}
1004
return nan;
@@ -1056,11 +1056,11 @@ float64 HELPER(rsqrte_f64)(float64 input, float_status *s)
1056
float64 nan = f64;
1057
if (float64_is_signaling_nan(f64, s)) {
1058
float_raise(float_flag_invalid, s);
1059
- if (!s->default_nan_mode) {
1059
+ if (!get_default_nan_mode(s)) {
1060
nan = float64_silence_nan(f64, s);
1061
}
1062
}
1063
- if (s->default_nan_mode) {
1063
+ if (get_default_nan_mode(s)) {
1064
nan = float64_default_nan(s);
1065
}
1066
return nan;
target/m68k/softfloat.c
+1
-1
@@ -35,7 +35,7 @@ static floatx80 propagateFloatx80NaNOneArg(floatx80 a, float_status *status)
35
a = floatx80_silence_nan(a, status);
36
}
37
38
- if (status->default_nan_mode) {
38
+ if (get_default_nan_mode(status)) {
39
return floatx80_default_nan(status);
40
}
41