Brendan Shanks : ntdll: Fix floating point and extended registers not being restored under Wow64.
Alexandre Julliard
julliard at winehq.org
Wed Aug 3 15:31:40 CDT 2022
Module: wine
Branch: master
Commit: bc90f8715f2c640be4c5965eb59fef96907e7ccb
URL: https://gitlab.winehq.org/wine/wine/-/commit/bc90f8715f2c640be4c5965eb59fef96907e7ccb
Author: Brendan Shanks <bshanks at codeweavers.com>
Date: Mon Aug 1 11:03:32 2022 -0700
ntdll: Fix floating point and extended registers not being restored under Wow64.
---
dlls/ntdll/unix/signal_x86_64.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 8d85525b224..1c2db47c95d 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2078,10 +2078,12 @@ NTSTATUS set_thread_wow64_context( HANDLE handle, const void *ctx, ULONG size )
if (flags & CONTEXT_I386_EXTENDED_REGISTERS)
{
memcpy( &frame->xsave, context->ExtendedRegisters, sizeof(frame->xsave) );
+ frame->restore_flags |= CONTEXT_FLOATING_POINT;
}
else if (flags & CONTEXT_I386_FLOATING_POINT)
{
fpu_to_fpux( &frame->xsave, &context->FloatSave );
+ frame->restore_flags |= CONTEXT_FLOATING_POINT;
}
if (flags & CONTEXT_I386_XSTATE)
{
More information about the wine-cvs
mailing list