@@ -6225,8 +6225,7 @@ static int update_msacsr(CPUMIPSState *env, int action, int denormal)
enable = GET_FP_ENABLE(env->active_tc.msacsr) | FP_UNIMPLEMENTED;
/* Set Inexact (I) when flushing inputs to zero */
- if ((ieee_exception_flags & float_flag_iflush_denormal) &&
- (env->active_tc.msacsr & MSACSR_FS_MASK) != 0) {
+ if (ieee_exception_flags & float_flag_iflush_denormal) {
if (action & CLEAR_IS_INEXACT) {
mips_exception_flags &= ~FP_INEXACT;
} else {
@@ -6235,8 +6234,7 @@ static int update_msacsr(CPUMIPSState *env, int action, int denormal)
}
/* Set Inexact (I) and Underflow (U) when flushing outputs to zero */
- if ((ieee_exception_flags & float_flag_oflush_denormal) &&
- (env->active_tc.msacsr & MSACSR_FS_MASK) != 0) {
+ if (ieee_exception_flags & float_flag_oflush_denormal) {
mips_exception_flags |= FP_INEXACT;
if (action & CLEAR_FS_UNDERFLOW) {
mips_exception_flags &= ~FP_UNDERFLOW;
The FS_MASK has already been taken into account with restore_msa_fp_status. The definition of iflush and oflush is that we *have* flushed to zero. Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/mips/tcg/msa_helper.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -- 2.25.1