20 #include "pedigree/kernel/processor/StackFrame.h" 21 #include "pedigree/kernel/Log.h" 31 #if defined(OMIT_FRAMEPOINTER) 32 uint32_t *pPtr =
reinterpret_cast<uint32_t *
>(
35 uint32_t *pPtr =
reinterpret_cast<uint32_t *
>(
42 void X86StackFrame::construct(
43 ProcessorState &state, uintptr_t returnAddress,
unsigned int nParams, ...)
46 uintptr_t *pStack =
reinterpret_cast<uintptr_t *
>(state.getStackPointer());
51 pStack -= nParams + 1;
52 uintptr_t *pStackLowWaterMark = pStack;
54 *pStack++ = returnAddress;
57 va_start(list, nParams);
59 for (
int i = nParams - 1; i >= 0; i--)
61 *pStack++ = va_arg(list, uintptr_t);
67 state.setStackPointer(reinterpret_cast<uintptr_t>(pStackLowWaterMark));
virtual uintptr_t getParameter(size_t n)