diff options
Diffstat (limited to 'src/core/stack.h')
| -rw-r--r-- | src/core/stack.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/stack.h b/src/core/stack.h index 8c7f7a2..dbc718a 100644 --- a/src/core/stack.h +++ b/src/core/stack.h @@ -15,6 +15,11 @@ enum { SC_RETURN_LOW, SC_RETURN_TOP, SC_RETURN_NODE, SC_FREE, SC_STOP, SC_BUMP, SC_MAX, SC_HOLD_LOW, SC_HOLD_HIGH, SC_CUT, SC_GC_ACTIVE, SC_COUNT }; +/* optional words after the registered ones, for the native allocator fast paths + in compiled o3 regions: a tag (a runtime without them never has it there), the + address of rt.dbg, and the entry addresses of rt.new_k, rt.recycle_leaf and rt.own */ +enum { SC_FAST = SC_COUNT, SC_DBG, SC_NEW_K, SC_RECYCLE_LEAF, SC_OWN, SC_FAST_END }; +#define SC_FAST_TAG 0x2B7E1517 /* the including core supplies stack_memory_grow and refreshes m if it moves. */ static Cell stack_get(int slot) { Cell p = m[stack_control + slot]; return inmem(p) ? m[p] : 0; } |
