diff options
author | John Chen <jochen@microsoft.com> | 2016-11-29 19:50:09 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-29 19:50:09 -0800 |
commit | 85c0a5641d60aabe028a9e4b4ef07a7b58a2181b (patch) | |
tree | 92eeb60f1702c448e5d62eb80c92f59879b406d5 /src/pal/src/exception | |
parent | 89440daa5cfe3ad814b9caac6bd47c5d7ffc6d9b (diff) | |
download | coreclr-85c0a5641d60aabe028a9e4b4ef07a7b58a2181b.tar.gz coreclr-85c0a5641d60aabe028a9e4b4ef07a7b58a2181b.tar.bz2 coreclr-85c0a5641d60aabe028a9e4b4ef07a7b58a2181b.zip |
Capture YMM registers on OSX (#8365)
Also fixed checking of context flags on OSX (issue #8116)
Diffstat (limited to 'src/pal/src/exception')
-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"); |