Alexandre Julliard : ntdll: Initialize MxCsr for new threads on x86.

Alexandre Julliard julliard at winehq.org
Mon Nov 4 16:40:24 CST 2019


Module: wine
Branch: master
Commit: 1b3fa021909fcb13d1517a8df0b84b6a225e6b98
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1b3fa021909fcb13d1517a8df0b84b6a225e6b98

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Nov  2 14:34:17 2019 +0100

ntdll: Initialize MxCsr for new threads on x86.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/signal_i386.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index fd761246c5..e9dd0de2fc 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -2716,6 +2716,7 @@ static void init_thread_context( CONTEXT *context, LPTHREAD_START_ROUTINE entry,
     context->Eip    = (DWORD)relay;
     context->FloatSave.ControlWord = 0x27f;
     ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->ControlWord = 0x27f;
+    ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->MxCsr = 0x1f80;
 }
 
 
@@ -2741,7 +2742,7 @@ PCONTEXT DECLSPEC_HIDDEN attach_thread( LPTHREAD_START_ROUTINE entry, void *arg,
         ctx = (CONTEXT *)((char *)NtCurrentTeb()->Tib.StackBase - 16) - 1;
         init_thread_context( ctx, entry, arg, relay );
     }
-    ctx->ContextFlags = CONTEXT_FULL;
+    ctx->ContextFlags = CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_EXTENDED_REGISTERS;
     LdrInitializeThunk( ctx, (void **)&ctx->Eax, 0, 0 );
     return ctx;
 }




More information about the wine-cvs mailing list