Browse Source

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>
pull/107/head
Joseph Myers 6 years ago
committed by Paolo Bonzini
parent
commit
3ddc0eca22
  1. 2
      target/i386/fpu_helper.c

2
target/i386/fpu_helper.c

@ -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 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)

Loading…
Cancel
Save