pContext->Eax = *pRegDisp->pEax;
pContext->Ecx = *pRegDisp->pEcx;
pContext->Edx = *pRegDisp->pEdx;
- pContext->Esp = pRegDisp->Esp;
+ pContext->Esp = pRegDisp->SP;
pContext->Eip = pRegDisp->ControlPC;
// If we still have the pointer to the leaf CONTEXT, and the leaf CONTEXT is the same as the CONTEXT for
pRD->pEcx = &(pDE->m_context.Ecx);
pRD->pEax = &(pDE->m_context.Eax);
pRD->pEbp = &(pDE->m_context.Ebp);
- pRD->Esp = (DWORD)GetSP(&pDE->m_context);
+ pRD->SP = (DWORD)GetSP(&pDE->m_context);
pRD->PCTAddr = GetReturnAddressPtr();
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
return *m_registers->pEbx;
break;
case 4:
- return m_registers->Esp;
+ return m_registers->SP;
break;
case 5:
return *m_registers->pEbp;
pDRD->pEax = NULL;
#endif // !USE_REMOTE_REGISTER_ADDRESS
- pDRD->SP = pRD->Esp;
+ pDRD->SP = pRD->SP;
pDRD->PC = pRD->ControlPC;
// Please leave EBP, ESP, EIP at the front so I don't have to scroll
DWORD * pEax;
DWORD * pEbp;
- DWORD Esp; // (Esp) Stack Pointer
+ DWORD SP; // Stack Pointer
PCODE ControlPC;
TADDR PCTAddr;
inline TADDR GetRegdisplaySP(REGDISPLAY *display) {
LIMITED_METHOD_DAC_CONTRACT;
- return (TADDR)display->Esp;
+ return (TADDR)display->SP;
}
inline void SetRegdisplaySP(REGDISPLAY *display, LPVOID sp ) {
LIMITED_METHOD_DAC_CONTRACT;
- (display->Esp) = (DWORD)(size_t)sp;
+ (display->SP) = (DWORD)(size_t)sp;
}
inline TADDR GetRegdisplayFP(REGDISPLAY *display) {
pRD->SP = (DWORD)GetSP(pRD->pCurrentContext);
pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext);
#elif defined(_TARGET_X86_) // _TARGET_ARM_
- pRD->Esp = (DWORD)GetSP(pRD->pCurrentContext);
+ pRD->SP = (DWORD)GetSP(pRD->pCurrentContext);
pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext);
#else // _TARGET_X86_
PORTABILITY_ASSERT("SyncRegDisplayToCurrentContext");
pRD->pEax = &(pctx->Eax);
pRD->pEcx = &(pctx->Ecx);
pRD->pEdx = &(pctx->Edx);
- pRD->Esp = pctx->Esp;
+ pRD->SP = pctx->Esp;
pRD->ControlPC = (PCODE)(pctx->Eip);
pRD->PCTAddr = (UINT_PTR)&(pctx->Eip);
#else // _TARGET_X86_
if (pInRD->pEax != NULL) {pOutCtx->Eax = *pInRD->pEax;} else {pInRD->pEax = NULL;}
if (pInRD->pEcx != NULL) {pOutCtx->Ecx = *pInRD->pEcx;} else {pInRD->pEcx = NULL;}
if (pInRD->pEdx != NULL) {pOutCtx->Edx = *pInRD->pEdx;} else {pInRD->pEdx = NULL;}
- pOutCtx->Esp = pInRD->Esp;
+ pOutCtx->Esp = pInRD->SP;
pOutCtx->Eip = pInRD->ControlPC;
#else // _TARGET_X86_
PORTABILITY_ASSERT("CopyRegDisplay");
pContext->Eax = *pRegDisp->pEax;
pContext->Ecx = *pRegDisp->pEcx;
pContext->Edx = *pRegDisp->pEdx;
- pContext->Esp = pRegDisp->Esp;
+ pContext->Esp = pRegDisp->SP;
pContext->Eip = pRegDisp->ControlPC;
#else // _TARGET_X86_
PORTABILITY_ASSERT("UpdateContextFromRegDisp");
{
rd.pEbp = &(ContextRecord->Ebp);
}
- rd.Esp = ContextRecord->Esp;
+ rd.SP = ContextRecord->Esp;
rd.ControlPC = (PCODE)(ContextRecord->Eip);
rd.PCTAddr = (UINT_PTR)&(ContextRecord->Eip);
#undef CALLEE_SAVED_REGISTER
}
- ContextRecord->Esp = rd.Esp;
+ ContextRecord->Esp = rd.SP;
ContextRecord->Eip = rd.ControlPC;
ContextRecord->Ebp = *rd.pEbp;
_ASSERTE(pCacheEntry->fUseEbp);
// EBP frame, update ESP through EBP, since ESPOffset may vary
pRD->pEbp = PTR_DWORD((TADDR)*pRD->pEbp);
- pRD->Esp = (TADDR)pRD->pEbp + sizeof(void*);
+ pRD->SP = (TADDR)pRD->pEbp + sizeof(void*);
}
else
{
_ASSERTE(!pCacheEntry->fUseEbp);
// ESP frame, update up to retAddr using ESPOffset
- pRD->Esp += pCacheEntry->ESPOffset;
+ pRD->SP += pCacheEntry->ESPOffset;
}
- pRD->PCTAddr = (TADDR)pRD->Esp;
+ pRD->PCTAddr = (TADDR)pRD->SP;
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
- pRD->Esp += sizeof(void*) + pCacheEntry->argSize;
+ pRD->SP += sizeof(void*) + pCacheEntry->argSize;
#elif defined(_TARGET_AMD64_)
if (pRD->IsCallerContextValid)
_ASSERTE(info->epilogOffs > 0);
int offset = 0;
- unsigned ESP = pContext->Esp;
+ unsigned ESP = pContext->SP;
if (info->rawStkSize)
{
pContext->PCTAddr = (TADDR)ESP;
pContext->ControlPC = *PTR_PCODE(pContext->PCTAddr);
- pContext->Esp = ESP;
+ pContext->SP = ESP;
}
/*****************************************************************************/
have already been popped */
int offset = 0;
- unsigned ESP = pContext->Esp;
+ unsigned ESP = pContext->SP;
bool needMovEspEbp = false;
pContext->PCTAddr = (TADDR)ESP;
pContext->ControlPC = *PTR_PCODE(pContext->PCTAddr);
- pContext->Esp = ESP;
+ pContext->SP = ESP;
}
//****************************************************************************
/* Now adjust stack pointer */
- pContext->Esp += ESPIncrOnReturn(info);
+ pContext->SP += ESPIncrOnReturn(info);
}
/*****************************************************************************/
#endif
const DWORD curOffs = info->prologOffs;
- unsigned ESP = pContext->Esp;
+ unsigned ESP = pContext->SP;
// Find out how many callee-saved regs have already been pushed
_ASSERTE(offset == info->prologOffs);
#endif
- pContext->Esp = ESP;
+ pContext->SP = ESP;
}
/*****************************************************************************/
_ASSERTE(!info->ebpFrame && !info->doubleAlign);
_ASSERTE(info->epilogOffs == hdrInfo::NOT_IN_EPILOG);
- unsigned ESP = pContext->Esp;
+ unsigned ESP = pContext->SP;
if (info->prologOffs != hdrInfo::NOT_IN_PROLOG)
if (info->prologOffs != 0) // Do nothing for the very start of the method
{
UnwindEspFrameProlog(pContext, info, methodStart, flags);
- ESP = pContext->Esp;
+ ESP = pContext->SP;
}
}
else
/* Now adjust stack pointer */
- pContext->Esp = ESP + ESPIncrOnReturn(info);
+ pContext->SP = ESP + ESPIncrOnReturn(info);
}
/* If we're past the "push ebp", adjust ESP to pop EBP off */
if (curOffs == (offset + 1))
- pContext->Esp += sizeof(TADDR);
+ pContext->SP += sizeof(TADDR);
/* Stack pointer points to return address */
- pContext->PCTAddr = (TADDR)pContext->Esp;
+ pContext->PCTAddr = (TADDR)pContext->SP;
pContext->ControlPC = *PTR_PCODE(pContext->PCTAddr);
/* EBP and callee-saved registers still have the correct value */
/* The caller's saved EBP is pointed to by our EBP */
pContext->pEbp = PTR_DWORD((TADDR)curEBP);
- pContext->Esp = DWORD((TADDR)(curEBP + sizeof(void *)));
+ pContext->SP = DWORD((TADDR)(curEBP + sizeof(void *)));
/* Stack pointer points to return address */
- pContext->PCTAddr = (TADDR)pContext->Esp;
+ pContext->PCTAddr = (TADDR)pContext->SP;
pContext->ControlPC = *PTR_PCODE(pContext->PCTAddr);
}
_ASSERTE(info->ebpFrame || info->doubleAlign);
- const unsigned curESP = pContext->Esp;
+ const unsigned curESP = pContext->SP;
const unsigned curEBP = *pContext->pEbp;
/* First check if we are in a filter (which is obviously after the prolog) */
pContext->PCTAddr = baseSP;
pContext->ControlPC = *PTR_PCODE(pContext->PCTAddr);
- pContext->Esp = (DWORD)(baseSP + sizeof(TADDR));
+ pContext->SP = (DWORD)(baseSP + sizeof(TADDR));
// pContext->pEbp = same as before;
/* Now adjust stack pointer. */
- pContext->Esp += ESPIncrOnReturn(info);
+ pContext->SP += ESPIncrOnReturn(info);
return true;
}
/* The caller's ESP will be equal to EBP + retAddrSize + argSize. */
- pContext->Esp = (DWORD)(curEBP + sizeof(curEBP) + ESPIncrOnReturn(info));
+ pContext->SP = (DWORD)(curEBP + sizeof(curEBP) + ESPIncrOnReturn(info));
/* The caller's saved EIP is right after our EBP */
unsigned curOffs = pCodeInfo->GetRelOffset();
unsigned EBP = *pContext->pEbp;
- unsigned ESP = pContext->Esp;
+ unsigned ESP = pContext->SP;
unsigned ptrOffs;
}
else
{
- taArgBase = pContext->Esp + stackDepth;
+ taArgBase = pContext->SP + stackDepth;
}
// Only synchronized methods and generic code that accesses
PTR_CBYTE table = PTR_CBYTE(gcInfoToken.Info) + stateBuf->hdrInfoSize;
unsigned argSize = GetPushedArgSize(info, table, relOffset);
- return PVOID(SIZE_T(pContext->Esp + argSize + info->gsCookieOffset));
+ return PVOID(SIZE_T(pContext->SP + argSize + info->gsCookieOffset));
}
#elif defined(USE_GC_INFO_DECODER) && !defined(CROSSGEN_COMPILE)
*(pRD->pCallerContext) = *(pDispatcherContext->ContextRecord);
pRD->IsCallerContextValid = TRUE;
-#ifndef _TARGET_X86_
pRD->SP = sfEstablisherFrame.SP;
-#else
- pRD->Esp = sfEstablisherFrame.SP;
-#endif
pRD->ControlPC = pDispatcherContext->ControlPc;
#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_)
LIMITED_METHOD_DAC_CONTRACT;
// EAX ECX EDX are scratch
- this->Esp = regs->Esp;
+ this->Esp = regs->SP;
this->Ebx = *regs->pEbx;
this->Esi = *regs->pEsi;
this->Edi = *regs->pEdi;
_ASSERTE(pFunc != NULL);
UpdateRegDisplayHelper(pRD, pFunc->CbStackPop());
- LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK TransitionFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->Esp));
+ LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK TransitionFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->SP));
RETURN;
}
#else // WIN64EXCEPTIONS
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
- pRD->Esp = (DWORD)(pRD->PCTAddr + sizeof(TADDR) + cbStackPop);
+ pRD->SP = (DWORD)(pRD->PCTAddr + sizeof(TADDR) + cbStackPop);
#endif // WIN64EXCEPTIONS
InsureInit(false, &unwindState);
pRD->PCTAddr = dac_cast<TADDR>(unwindState.pRetAddr());
pRD->ControlPC = unwindState.GetRetAddr();
- pRD->Esp = unwindState._esp;
+ pRD->SP = unwindState._esp;
// Get some special host instance memory
// so we have a place to point to.
pRD->pEbp = (DWORD*) m_MachState.pEbp();
pRD->PCTAddr = dac_cast<TADDR>(m_MachState.pRetAddr());
pRD->ControlPC = m_MachState.GetRetAddr();
- pRD->Esp = (DWORD) m_MachState.esp();
+ pRD->SP = (DWORD) m_MachState.esp();
#ifdef WIN64EXCEPTIONS
pRD->IsCallerContextValid = FALSE;
// Copy the saved state from the frame to the current context.
//
pRD->pCurrentContext->Eip = pRD->ControlPC;
- pRD->pCurrentContext->Esp = pRD->Esp;
+ pRD->pCurrentContext->Esp = pRD->SP;
#define CALLEE_SAVED_REGISTER(regname) pRD->pCurrentContext->regname = *pRD->p##regname;
ENUM_CALLEE_SAVED_REGISTERS();
#define CALLEE_SAVED_REGISTER(regname) pRD->p##regname = (DWORD*) ®s->regname;
ENUM_CALLEE_SAVED_REGISTERS();
#undef CALLEE_SAVED_REGISTER
- pRD->Esp = m_Esp;
+ pRD->SP = m_Esp;
pRD->PCTAddr = GetReturnAddressPtr();
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
ENUM_CALLEE_SAVED_REGISTERS();
#undef CALLEE_SAVED_REGISTER
- pRD->Esp = m_ctx.Esp;
+ pRD->SP = m_ctx.Esp;
pRD->PCTAddr = GetReturnAddressPtr();
pRD->ControlPC = m_ctx.Eip;
#endif // WIN64EXCEPTIONS
- LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK FaultingExceptionFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->Esp));
+ LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK FaultingExceptionFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->SP));
RETURN;
}
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
/* Now we need to pop off the outgoing arguments */
- pRD->Esp = (DWORD) dac_cast<TADDR>(m_pCallSiteSP) + stackArgSize;
+ pRD->SP = (DWORD) dac_cast<TADDR>(m_pCallSiteSP) + stackArgSize;
#ifdef WIN64EXCEPTIONS
pRD->IsCallerContextValid = FALSE;
pRD->IsCallerSPValid = FALSE; // Don't add usage of this field. This is only temporary.
pRD->pCurrentContext->Eip = pRD->ControlPC;
- pRD->pCurrentContext->Esp = pRD->Esp;
+ pRD->pCurrentContext->Esp = pRD->SP;
pRD->pCurrentContext->Ebp = *pRD->pEbp;
#define CALLEE_SAVED_REGISTER(regname) pRD->pCurrentContextPointers->regname = NULL;
SyncRegDisplayToCurrentContext(pRD);
#endif
- LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK InlinedCallFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->Esp));
+ LOG((LF_GCROOTS, LL_INFO100000, "STACKWALK InlinedCallFrame::UpdateRegDisplay(ip:%p, sp:%p)\n", pRD->ControlPC, pRD->SP));
RETURN;
}
pRD->ControlPC = pUnwoundContext->Eip;
pRD->PCTAddr = dac_cast<TADDR>(m_Regs) + offsetof(CONTEXT, Eip);
- pRD->Esp = m_Regs->Esp;
+ pRD->SP = m_Regs->Esp;
RETURN;
}
pRD->pEbp = &m_Args->Ebp;
pRD->PCTAddr = dac_cast<TADDR>(m_Args) + offsetof(HijackArgs, Eip);
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
- pRD->Esp = (DWORD)(pRD->PCTAddr + sizeof(TADDR));
+ pRD->SP = (DWORD)(pRD->PCTAddr + sizeof(TADDR));
}
#endif // FEATURE_HIJACK
pRD->PCTAddr = GetReturnAddressPtr();
pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr);
- pRD->Esp = (DWORD)(pRD->PCTAddr + sizeof(TADDR));
+ pRD->SP = (DWORD)(pRD->PCTAddr + sizeof(TADDR));
RETURN;
}
ZeroMemory(&rd, sizeof(rd));
rd.pEbp = &ctxCur.Ebp;
- rd.Esp = ctxCur.Esp;
+ rd.SP = ctxCur.Esp;
rd.ControlPC = ctxCur.Eip;
codeInfo.GetCodeManager()->UnwindStackFrame(
NULL);
ctxCur.Ebp = *(rd.pEbp);
- ctxCur.Esp = rd.Esp;
+ ctxCur.Esp = rd.SP;
ctxCur.Eip = rd.ControlPC;
}
else