summary refs log tree commit diff
path: root/execution.e
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-05-16 00:43:24 -0700
committerIrene Knapp <ireneista@irenes.space>2026-05-16 00:43:24 -0700
commit9922f43d213bb2f710f90cb5165a7580ef0326cd (patch)
tree8efe744025fb1673fa506293f385e96f12d7fb8d /execution.e
parent09ae826c2f99b7e21606e01f577b934c1d669bdc (diff)
it's much closer, most of the labels work correctly now
Force-Push: yes
Change-Id: I45662e60c0035758a2cd57d971031eb0562eccb7
Diffstat (limited to 'execution.e')
-rw-r--r--execution.e7
1 files changed, 5 insertions, 2 deletions
diff --git a/execution.e b/execution.e
index 48761de..8410678 100644
--- a/execution.e
+++ b/execution.e
@@ -235,12 +235,12 @@
 ~ * rbp points to the top of the control stack.
 ~
 ~ (source register, base address -- new base address)
-: pushcontrol
+: pack-pushcontrol
   swap :rbp -8 :rbp lea-reg64-disp8-reg64
   swap :rbp 0 mov-disp8-reg64-reg64 ;
 
 ~ (target register, base address -- new base address)
-: popcontrol
+: pack-popcontrol
   :rbp 0 3roll mov-reg64-disp8-reg64
   :rbp 8 :rbp lea-reg64-disp8-reg64 ;
 
@@ -480,6 +480,9 @@
   8 packalign
   current-offset L!' warm-start
 
+  ~ TODO this is tied to the specific example in evoke
+  over L@' happy-path swap - L@' origin + pack64
+
   ~   Before handing off to us, cold-start pushed a single value onto the
   ~ stack, a pointer to the beginning of the heap. Now, we load our entire
   ~ Forth implementation onto that heap, beginning with the minimal set of