void DacDbiInterfaceImpl::UpdateContextFromRegDisp(REGDISPLAY * pRegDisp,
T_CONTEXT * pContext)
{
-#if defined(_TARGET_X86_)
+#if defined(_TARGET_X86_) && !defined(WIN64EXCEPTIONS)
// Do a partial copy first.
pContext->ContextFlags = (CONTEXT_INTEGER | CONTEXT_CONTROL);
{
*pContext = *pRegDisp->pContext;
}
-#else
+#else // _TARGET_X86_ && !WIN64EXCEPTIONS
*pContext = *pRegDisp->pCurrentContext;
-#endif
+#endif // !_TARGET_X86_ || WIN64EXCEPTIONS
}
//---------------------------------------------------------------------------------------
{
LIMITED_METHOD_CONTRACT;
-#if defined(_TARGET_AMD64_)
+#ifdef WIN64EXCEPTIONS
if ( ((UINT_PTR)(pAddr) >= (UINT_PTR)pRD->pCurrentContextPointers) &&
- ((UINT_PTR)(pAddr) <= ((UINT_PTR)pRD->pCurrentContextPointers + sizeof(_KNONVOLATILE_CONTEXT_POINTERS))) )
+ ((UINT_PTR)(pAddr) <= ((UINT_PTR)pRD->pCurrentContextPointers + sizeof(T_KNONVOLATILE_CONTEXT_POINTERS))) )
#else
if ( ((UINT_PTR)(pAddr) >= (UINT_PTR)pRD->pContext) &&
((UINT_PTR)(pAddr) <= ((UINT_PTR)pRD->pContext + sizeof(T_CONTEXT))) )
return;
}
-#if !defined(_WIN64)
+#ifndef WIN64EXCEPTIONS
// Reset pContext; it's only valid for active (top-most) frame.
pRD->pContext = NULL;
#endif // !_WIN64
}
CONTRACT_END;
- // reset pContext; it's only valid for active (top-most) frame
- pRD->pContext = NULL;
-
pRD->PCTAddr = GetReturnAddressPtr();
#ifdef WIN64EXCEPTIONS
#else // WIN64EXCEPTIONS
+ // reset pContext; it's only valid for active (top-most) frame
+ pRD->pContext = NULL;
+
CalleeSavedRegisters* regs = GetCalleeSavedRegisters();
#define CALLEE_SAVED_REGISTER(regname) pRD->p##regname = (DWORD*) ®s->regname;
}
CONTRACT_END;
- // reset pContext; it's only valid for active (top-most) frame
- pRD->pContext = NULL;
pRD->PCTAddr = GetReturnAddressPtr();
#ifdef WIN64EXCEPTIONS
#else
+ // reset pContext; it's only valid for active (top-most) frame
+ pRD->pContext = NULL;
+
#define CALLEE_SAVED_REGISTER(regname) pRD->p##regname = (DWORD*) &m_regs.regname;
ENUM_CALLEE_SAVED_REGISTERS();
#undef CALLEE_SAVED_REGISTER