[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 13/72] target/mips: Set set_default_nan_mode with set_snan_bit_is
From: |
Richard Henderson |
Subject: |
[PATCH 13/72] target/mips: Set set_default_nan_mode with set_snan_bit_is_one |
Date: |
Fri, 7 May 2021 18:47:03 -0700 |
This behavior is currently hard-coded in parts_silence_nan,
but setting this bit properly will allow this to be cleaned up.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/mips/fpu_helper.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/target/mips/fpu_helper.h b/target/mips/fpu_helper.h
index 1c2d6d35a7..ad1116e8c1 100644
--- a/target/mips/fpu_helper.h
+++ b/target/mips/fpu_helper.h
@@ -27,8 +27,14 @@ static inline void restore_flush_mode(CPUMIPSState *env)
static inline void restore_snan_bit_mode(CPUMIPSState *env)
{
- set_snan_bit_is_one((env->active_fpu.fcr31 & (1 << FCR31_NAN2008)) == 0,
- &env->active_fpu.fp_status);
+ bool nan2008 = env->active_fpu.fcr31 & (1 << FCR31_NAN2008);
+
+ /*
+ * With nan2008, SNaNs are silenced in the usual way.
+ * Before that, SNaNs are not silenced; default nans are produced.
+ */
+ set_snan_bit_is_one(!nan2008, &env->active_fpu.fp_status);
+ set_default_nan_mode(!nan2008, &env->active_fpu.fp_status);
}
static inline void restore_fp_status(CPUMIPSState *env)
--
2.25.1
- [PATCH 08/72] softfloat: Use float_raise in more places, (continued)
- [PATCH 08/72] softfloat: Use float_raise in more places, Richard Henderson, 2021/05/07
- [PATCH 10/72] softfloat: Add float_cmask and constants, Richard Henderson, 2021/05/07
- [PATCH 11/72] softfloat: Use return_nan in float_to_float, Richard Henderson, 2021/05/07
- [PATCH 16/72] softfloat: Move type-specific pack/unpack routines, Richard Henderson, 2021/05/07
- [PATCH 13/72] target/mips: Set set_default_nan_mode with set_snan_bit_is_one,
Richard Henderson <=
- [PATCH 21/72] softfloat: Use pointers with ftype_pack_raw, Richard Henderson, 2021/05/07
- [PATCH 20/72] softfloat: Use pointers with pack_raw, Richard Henderson, 2021/05/07
- [PATCH 26/72] softfloat: Convert float128_silence_nan to parts, Richard Henderson, 2021/05/07
- [PATCH 22/72] softfloat: Use pointers with ftype_unpack_canonical, Richard Henderson, 2021/05/07