@samitouri / QOSamiQemu / commits / 04281c6e7b

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