target/i386: set SSE FTZ in correct floating-point state

The code to set floating-point state when MXCSR changes calls
set_flush_to_zero on &env->fp_status, so affecting the x87
floating-point state rather than the SSE state.  Fix to call it for
&env->sse_status instead.

Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2006252357170.3832@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Joseph Myers 2020-06-25 23:57:44 +00:00 committed by Paolo Bonzini
parent 9e7871b1fc
commit 3ddc0eca22

View File

@ -2972,7 +2972,7 @@ void update_mxcsr_status(CPUX86State *env)
set_flush_inputs_to_zero((mxcsr & SSE_DAZ) ? 1 : 0, &env->sse_status); set_flush_inputs_to_zero((mxcsr & SSE_DAZ) ? 1 : 0, &env->sse_status);
/* set flush to zero */ /* set flush to zero */
set_flush_to_zero((mxcsr & SSE_FZ) ? 1 : 0, &env->fp_status); set_flush_to_zero((mxcsr & SSE_FZ) ? 1 : 0, &env->sse_status);
} }
void helper_ldmxcsr(CPUX86State *env, uint32_t val) void helper_ldmxcsr(CPUX86State *env, uint32_t val)