Alexandre Julliard : ntdll: Fix FPU initialization for new threads on x86-64.

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


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

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

ntdll: Fix FPU initialization for new threads on x86-64.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48019
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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

diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index 9645c5266c..c372f65b34 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -4195,12 +4195,13 @@ static void init_thread_context( CONTEXT *context, LPTHREAD_START_ROUTINE entry,
 {
     __asm__( "movw %%cs,%0" : "=m" (context->SegCs) );
     __asm__( "movw %%ss,%0" : "=m" (context->SegSs) );
-    __asm__( "fxsave %0" : "=m" (context->u.FltSave) );
     context->Rcx    = (ULONG_PTR)entry;
     context->Rdx    = (ULONG_PTR)arg;
     context->Rsp    = (ULONG_PTR)NtCurrentTeb()->Tib.StackBase - 0x28;
     context->Rip    = (ULONG_PTR)relay;
     context->EFlags = 0x200;
+    context->u.FltSave.ControlWord = 0x27f;
+    context->u.FltSave.MxCsr = context->MxCsr = 0x1f80;
 }
 
 




More information about the wine-cvs mailing list