Module: wine Branch: master Commit: 633db76f781cc804c63e9ca68ff6a8327af84d11 URL: https://source.winehq.org/git/wine.git/?a=commit;h=633db76f781cc804c63e9ca68...
Author: Paul Gofman pgofman@codeweavers.com Date: Wed Mar 3 14:55:00 2021 +0300
ntdll: Reset YMM state in NtSetContextThread() if that is assumed by the context being set.
Fixes test failure on testbot where compaction is not supported (resetting YMM state if that is implied by the context being set).
Signed-off-by: Paul Gofman pgofman@codeweavers.com Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/unix/signal_i386.c | 2 +- dlls/ntdll/unix/signal_x86_64.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c index 0153f772b6d..9e97fd9e298 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c @@ -1254,7 +1254,7 @@ NTSTATUS WINAPI NtSetContextThread( HANDLE handle, const CONTEXT *context ) xsave->xstate.mask |= XSTATE_MASK_GSSE; memcpy( &xsave->xstate.ymm_high, &xs->YmmContext, sizeof(xsave->xstate.ymm_high) ); } - else if (xs->CompactionMask & XSTATE_MASK_GSSE) + else xsave->xstate.mask &= ~XSTATE_MASK_GSSE; }
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index e62e958b4aa..2a030372fb7 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -1864,7 +1864,7 @@ NTSTATUS WINAPI NtSetContextThread( HANDLE handle, const CONTEXT *context ) xsave->xstate.Mask |= XSTATE_MASK_GSSE; memcpy( &xsave->xstate.YmmContext, &xs->YmmContext, sizeof(xs->YmmContext) ); } - else if (xs->CompactionMask & XSTATE_MASK_GSSE) + else xsave->xstate.Mask &= ~XSTATE_MASK_GSSE; } return STATUS_SUCCESS;