diff options
Diffstat (limited to 'src/pal/src/exception/machexception.cpp')
-rw-r--r-- | src/pal/src/exception/machexception.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/pal/src/exception/machexception.cpp b/src/pal/src/exception/machexception.cpp index 8b0d7f22a8..5328e1f329 100644 --- a/src/pal/src/exception/machexception.cpp +++ b/src/pal/src/exception/machexception.cpp @@ -1518,6 +1518,7 @@ ActivationHandler(CONTEXT* context) extern "C" void ActivationHandlerWrapper(); extern "C" int ActivationHandlerReturnOffset; +extern "C" unsigned int XmmYmmStateSupport(); /*++ Function : @@ -1581,6 +1582,12 @@ InjectActivationInternal(CPalThread* pThread) // after the activation function returns. CONTEXT *pContext = (CONTEXT *)contextAddress; pContext->ContextFlags = CONTEXT_FULL | CONTEXT_SEGMENTS; +#ifdef XSTATE_SUPPORTED + if (XmmYmmStateSupport() == 1) + { + pContext->ContextFlags |= CONTEXT_XSTATE; + } +#endif MachRet = CONTEXT_GetThreadContextFromPort(threadPort, pContext); _ASSERT_MSG(MachRet == KERN_SUCCESS, "CONTEXT_GetThreadContextFromPort\n"); |