1#include "pedigree/kernel/processor/StackFrame.h"
2#include "pedigree/kernel/processor/state.h"
11 return reinterpret_cast<const uintptr_t*
>(
m_State.sp)[n - 4];
15void Armv7StackFrame::construct(ProcessorState& state, uintptr_t returnAddress,
16 unsigned int nParams, ...) {
18 va_start(args, nParams);
20 const size_t stackParams = nParams > 4 ? nParams - 4 : 0;
21 uintptr_t stack = state.sp & ~uintptr_t(7);
22 stack -= (stackParams *
sizeof(uintptr_t) + 7) & ~size_t(7);
23 auto* stackArguments =
reinterpret_cast<uintptr_t*
>(stack);
25 for (
size_t i = 0; i < nParams; ++i) {
26 uintptr_t value = va_arg(args, uintptr_t);
30 stackArguments[i - 4] = value;
35 state.lr = returnAddress;
uintptr_t getParameter(size_t n) override
const ProcessorState & m_State