@samitouri / QOSamiQemu / commits / 86686309f1

fpu: Use {get,set}_flush_to_zero 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 19:40 UTC 86686309f18a5d9ceedf35fb4c84cefb534c25d1
4 files changed +7 -7
fpu/softfloat-parts.c.inc
+2 -2
@@ -411,7 +411,7 @@ static void partsN(uncanon_normal)(FloatPartsN *p, float_status *s,
411 p->frac_lo &= ~round_mask;
412 }
413 fracN(shr)(p, frac_shift);
414 - } else if (s->flush_to_zero &&
414 + } else if (get_flush_to_zero(s) &&
415 s->ftz_detection == float_ftz_before_rounding) {
416 flags |= float_flag_output_denormal_flushed;
417 p->cls = float_class_zero;
@@ -462,7 +462,7 @@ static void partsN(uncanon_normal)(FloatPartsN *p, float_status *s,
462 fracN(shr)(p, frac_shift);
463
464 if (is_tiny) {
465 - if (s->flush_to_zero) {
465 + if (get_flush_to_zero(s)) {
466 assert(s->ftz_detection == float_ftz_after_rounding);
467 flags |= float_flag_output_denormal_flushed;
468 p->cls = float_class_zero;
fpu/softfloat.c
+1 -1
@@ -4919,7 +4919,7 @@ floatx80 roundAndPackFloatx80(FloatX80RoundPrec roundingPrecision, bool zSign,
4919 goto overflow;
4920 }
4921 if ( zExp <= 0 ) {
4922 - if (status->flush_to_zero) {
4922 + if (get_flush_to_zero(status)) {
4923 float_raise(float_flag_output_denormal_flushed, status);
4924 return packFloatx80(zSign, 0, 0);
4925 }
target/arm/tcg/vfp_helper.c
+3 -3
@@ -711,7 +711,7 @@ uint32_t HELPER(recpe_f16)(uint32_t input, float_status *fpst)
711 } else {
712 return float16_set_sign(float16_maxnorm, f16_sign);
713 }
714 - } else if (f16_exp >= 29 && fpst->flush_to_zero) {
714 + } else if (f16_exp >= 29 && get_flush_to_zero(fpst)) {
715 float_raise(float_flag_underflow, fpst);
716 return float16_set_sign(float16_zero, float16_is_neg(f16));
717 }
@@ -764,7 +764,7 @@ static float32 do_recpe_f32(float32 input, float_status *fpst, bool rpres)
764 } else {
765 return float32_set_sign(float32_maxnorm, f32_sign);
766 }
767 - } else if (f32_exp >= 253 && fpst->flush_to_zero) {
767 + } else if (f32_exp >= 253 && get_flush_to_zero(fpst)) {
768 float_raise(float_flag_underflow, fpst);
769 return float32_set_sign(float32_zero, float32_is_neg(f32));
770 }
@@ -823,7 +823,7 @@ float64 HELPER(recpe_f64)(float64 input, float_status *fpst)
823 } else {
824 return float64_set_sign(float64_maxnorm, f64_sign);
825 }
826 - } else if (f64_exp >= 2045 && fpst->flush_to_zero) {
826 + } else if (f64_exp >= 2045 && get_flush_to_zero(fpst)) {
827 float_raise(float_flag_underflow, fpst);
828 return float64_set_sign(float64_zero, float64_is_neg(f64));
829 }
tests/fp/fp-bench.c
+1 -1
@@ -675,7 +675,7 @@ static void parse_args(int argc, char *argv[])
675 soft_status.flush_inputs_to_zero = 1;
676 break;
677 case 'Z':
678 - soft_status.flush_to_zero = 1;
678 + set_flush_to_zero(true, &soft_status);
679 break;
680 }
681 }