about summary refs log tree commit diff
path: root/transform.e
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-09-22 18:52:50 -0700
committerIrene Knapp <ireneista@irenes.space>2026-09-23 02:27:52 -0700
commitd5030a4cf75b3600c957b0d48e0e68946367e919 (patch)
tree328e4d8741978d8f458acc21e528dad3b1213888 /transform.e
parenta569f93740bbbac3230434ee56bc51aa38be21ac (diff)
all the syscall parameters are in the kernel's order now
there was never a good reason for them not to be

plus, the formerly bespoke ones use the generic helpers now; sys-open and sys-close are implemented; and a bug in push-input-buffer and pop-output-buffer is fixed

unfortunately these were breaking changes, so there's another evoke.hex in this one

Change-Id: Ifad58fc2fd757adcf89a69c59575565a10406ec2
Force-Push: yes
Diffstat (limited to 'transform.e')
-rw-r--r--transform.e8
1 files changed, 4 insertions, 4 deletions
diff --git a/transform.e b/transform.e
index 0a5af3e..26ee650 100644
--- a/transform.e
+++ b/transform.e
@@ -273,7 +273,7 @@
 : push-input-buffer
   allocate-input-buffer-metadata
   ~ (original metadata pointer, new metadata pointer)
-  2dup 6 8 * memcopy
+  2dup 7 8 * memcopy
   ~ (original metadata pointer, new metadata pointer)
   swap dup zero-input-buffer-metadata
   input-buffer-next-source ! ;
@@ -290,7 +290,7 @@
 : pop-input-buffer
   dup input-buffer-next-source @
   ~ (original metadata pointer, next source metadata pointer)
-  dup { swap 6 8 * memcopy }
+  dup { swap 7 8 * memcopy }
       { drop zero-input-buffer-metadata } if-else ;
 
 
@@ -4479,7 +4479,7 @@ allocate-transformation-state s" transformation-state" variable
 ~ want to require that, so we keep all the formatting state in the output
 ~ metadata header.
 ~
-~ (length to write, base address, file descriptor -- length written)
+~ (file descriptor, base address, length to write -- length written)
 : hex-sys-write-replacement
   ~   In intended operation, the code under transformation is a compilation
   ~ process, and it won't output anything that isn't executable binary.
@@ -4488,7 +4488,7 @@ allocate-transformation-state s" transformation-state" variable
   over is-in-label-loop-buffer not {
     sys-write exit
   } if
-  drop over 3unroll
+  3roll drop dup 3roll
   ~   The result should be the length written. We just proactively declare
   ~ that we'll write the full length we were asked to, threading that through
   ~ as the result we'll eventually return.