Paul Gofman : ntdll: Reset YMM state in NtSetContextThread() if that is assumed by the context being set.
Alexandre Julliard
julliard at winehq.org
Wed Mar 3 15:47:29 CST 2021
Module: wine
Branch: master
Commit: 633db76f781cc804c63e9ca68ff6a8327af84d11
URL: https://source.winehq.org/git/wine.git/?a=commit;h=633db76f781cc804c63e9ca68ff6a8327af84d11
Author: Paul Gofman <pgofman at 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 at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
More information about the wine-cvs
mailing list