diff --git a/src/coreclr/vm/amd64/cgenamd64.cpp b/src/coreclr/vm/amd64/cgenamd64.cpp index af27637759473b..f674b15bd302f4 100644 --- a/src/coreclr/vm/amd64/cgenamd64.cpp +++ b/src/coreclr/vm/amd64/cgenamd64.cpp @@ -206,6 +206,8 @@ void ResumableFrame::UpdateRegDisplay_Impl(const PREGDISPLAY pRD, bool updateFlo CONTRACT_END; CopyMemory(pRD->pCurrentContext, m_Regs, sizeof(CONTEXT)); + // Clear the CONTEXT_XSTATE, since the REGDISPLAY contains just plain CONTEXT structure + pRD->pCurrentContext->ContextFlags &= ~(CONTEXT_XSTATE & CONTEXT_AREA_MASK); pRD->ControlPC = m_Regs->Rip; diff --git a/src/coreclr/vm/arm64/stubs.cpp b/src/coreclr/vm/arm64/stubs.cpp index e26b8aac9ad5d0..533a9b1cf5afcc 100644 --- a/src/coreclr/vm/arm64/stubs.cpp +++ b/src/coreclr/vm/arm64/stubs.cpp @@ -350,6 +350,8 @@ void ResumableFrame::UpdateRegDisplay_Impl(const PREGDISPLAY pRD, bool updateFlo CONTRACT_END; CopyMemory(pRD->pCurrentContext, m_Regs, sizeof(T_CONTEXT)); + // Clear the CONTEXT_XSTATE, since the REGDISPLAY contains just plain CONTEXT structure + pRD->pCurrentContext->ContextFlags &= ~(CONTEXT_XSTATE & CONTEXT_AREA_MASK); pRD->ControlPC = m_Regs->Pc; pRD->SP = m_Regs->Sp; diff --git a/src/coreclr/vm/threads.cpp b/src/coreclr/vm/threads.cpp index 92344beb931331..3fed0d695ba456 100644 --- a/src/coreclr/vm/threads.cpp +++ b/src/coreclr/vm/threads.cpp @@ -7686,6 +7686,7 @@ void ClrRestoreNonvolatileContext(PCONTEXT ContextRecord, size_t targetSSP) // Falling back to RtlRestoreContext() for now, though it should be possible to have simpler variants for these cases RtlRestoreContext(ContextRecord, NULL); #endif + UNREACHABLE(); } #ifdef FEATURE_INTERPRETER