summary refs log tree commit diff
path: root/evoke.e
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-05-18 16:36:08 -0700
committerIrene Knapp <ireneista@irenes.space>2026-05-18 16:36:08 -0700
commiteec336dea3d86e176c4bd86c435e6be35fec64e2 (patch)
tree9d72ffb1ab138e693ef8de7cbfec58c10d04d412 /evoke.e
parent5820c29532ba877ac50b331658a4b4dd7f138ded (diff)
okay there's a strat for making the here/latest variables now
it doesn't work yet, but it's gonna

the reason it doesn't work is that the new helper log-load-variable relies on the assembly-definition words being statically available, and they aren't yet

that's fine though, this is still a huge change, worth checking in. why?  well, it represents like 16 hours of debugging which culminated in some very minor changes to the semantics of the label transform, in order to make missing words easier to notice and debug. see comments for details.

woooooo :D

Force-Push: yes
Change-Id: Id8334819d165ba9e3156ef2bf32008af748eac29
Diffstat (limited to 'evoke.e')
-rw-r--r--evoke.e26
1 files changed, 23 insertions, 3 deletions
diff --git a/evoke.e b/evoke.e
index 607242d..869de31 100644
--- a/evoke.e
+++ b/evoke.e
@@ -7,8 +7,30 @@
 
 s" source-to-precompile" variable
 
+~ : fooze 4 . ; fooze
 1024 read-to-buffer
-: fooze 4 . ;
+here @
+dup L!' docol-codeword-value
+:rsi pack-pushcontrol
+8 :rax add-reg64-imm8
+:rax :rsi mov-reg64-reg64
+pack-next
+8 packalign
+here !
+
+: docol
+  [ here @
+    L@' docol-codeword-value :rax mov-reg64-imm64
+    :rax push-reg64
+    here ! ] ;asm
+
+: exit
+  [ here @
+    :rsi pack-popcontrol
+    here ! ] ;asm
+
+: foo 1 2 + ;
+0 sys-exit
 pyrzqxgl
 s" source-to-copy-to-log" variable
 
@@ -26,8 +48,6 @@ s" source-to-copy-to-log" variable
   elf-program-header
   output-cold-start
   source-to-copy-to-log output-warm-start
-  output-docol
-  output-exit
   source-to-precompile label-transform
   0 L!' final-word-name
   current-offset L!' total-size