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