#include <frame.h>
Public Attributes | |
PmObjDesc_t | od |
struct PmFrame_s * | fo_back |
pPmFunc_t | fo_func |
PmMemSpace_t | fo_memspace:8 |
uint8_t const * | fo_ip |
pPmBlock_t | fo_blockstack |
pPmDict_t | fo_attrs |
pPmDict_t | fo_globals |
pPmObj_t * | fo_sp |
uint8_t | fo_isImport:1 |
pPmObj_t | fo_locals [1] |
A struct that holds the execution frame of a function, including the stack, local vars and pointer to the code object.
This struct doesn't declare the stack. frame_new() is responsible for allocating the extra memory at the tail of fo_locals[] to hold both the locals and stack.
Local attributes dict (non-fast locals)
struct PmFrame_s* PmFrame_s::fo_back [read] |
Ptr to previous frame obj
Linked list of blocks
Ptr to fxn obj
Global attributes dict (pts to root frame's globals
uint8_t const* PmFrame_s::fo_ip |
Instrxn ptr (pts into memspace)
uint8_t PmFrame_s::fo_isImport |
Frame can be an import-frame that handles RETURN differently
Array of local vars and stack (space appended at alloc)
Mem space where func's CO comes from
Points to next empty slot in fo_locals (1 past TOS)
Obligatory obj descriptor