Module: wine Branch: master Commit: 0b2e65f53aeb4fbda660828ad06bff554fccb1d5 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0b2e65f53aeb4fbda660828ad...
Author: Alexandre Julliard julliard@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@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; }