diff --git a/TitanEngine/TitanEngine.Debugger.Context.cpp b/TitanEngine/TitanEngine.Debugger.Context.cpp index 6f671b4..33fa93a 100644 --- a/TitanEngine/TitanEngine.Debugger.Context.cpp +++ b/TitanEngine/TitanEngine.Debugger.Context.cpp @@ -929,10 +929,6 @@ __declspec(dllexport) bool TITCALL SetAVXContext(HANDLE hActiveThread, TITAN_ENG if(InitXState() == false) return false; - DWORD64 FeatureMask = _GetEnabledXStateFeatures(); - if((FeatureMask & XSTATE_MASK_AVX) == 0) - return false; - DWORD ContextSize = 0; BOOL Success = _InitializeContext(NULL, CONTEXT_ALL | CONTEXT_XSTATE, @@ -955,12 +951,15 @@ __declspec(dllexport) bool TITCALL SetAVXContext(HANDLE hActiveThread, TITAN_ENG if(Success == FALSE) return false; - if(_SetXStateFeaturesMask(Context, XSTATE_MASK_AVX) == FALSE) - return false; + if (_SetXStateFeaturesMask(Context, XSTATE_MASK_AVX) == FALSE) { + if (_SetXStateFeaturesMask(Context, XSTATE_MASK_LEGACY_SSE) == FALSE) + return false; + } if(GetThreadContext(hActiveThread, Context) == FALSE) return false; + DWORD64 FeatureMask; if(_GetXStateFeaturesMask(Context, &FeatureMask) == FALSE) return false; @@ -989,10 +988,6 @@ __declspec(dllexport) bool TITCALL GetAVXContext(HANDLE hActiveThread, TITAN_ENG if(InitXState() == false) return false; - DWORD64 FeatureMask = _GetEnabledXStateFeatures(); - if((FeatureMask & XSTATE_MASK_AVX) == 0) - return false; - DWORD ContextSize = 0; BOOL Success = _InitializeContext(NULL, CONTEXT_ALL | CONTEXT_XSTATE, @@ -1015,12 +1010,15 @@ __declspec(dllexport) bool TITCALL GetAVXContext(HANDLE hActiveThread, TITAN_ENG if(Success == FALSE) return false; - if(_SetXStateFeaturesMask(Context, XSTATE_MASK_AVX) == FALSE) - return false; + if (_SetXStateFeaturesMask(Context, XSTATE_MASK_AVX) == FALSE) { + if (_SetXStateFeaturesMask(Context, XSTATE_MASK_LEGACY_SSE) == FALSE) + return false; + } if(GetThreadContext(hActiveThread, Context) == FALSE) return false; + DWORD64 FeatureMask; if(_GetXStateFeaturesMask(Context, &FeatureMask) == FALSE) return false;