summary refs log tree commit diff
path: root/transform.e
diff options
context:
space:
mode:
authorIrene Knapp <ireneista@irenes.space>2026-05-28 19:34:07 -0700
committerIrene Knapp <ireneista@irenes.space>2026-05-28 20:28:48 -0700
commit3b00a5376036bb3f50a1a1f97d136305a2d03a57 (patch)
treec08ec1927761909aa76981d9eb964725e00ddc72 /transform.e
parentd9a82e9f3c87aa318fb05819249656b43fde15e3 (diff)
change the parameter order for memcopy and memmove
that was surprisingly involved, but it feels like the right thing to do

Change-Id: Ia2f38c7278f4237cebd0435d27131fe32dbc3718
Force-Push: yes
Diffstat (limited to 'transform.e')
-rw-r--r--transform.e21
1 files changed, 10 insertions, 11 deletions
diff --git a/transform.e b/transform.e
index 4004db9..1230883 100644
--- a/transform.e
+++ b/transform.e
@@ -220,7 +220,7 @@
 : push-input-buffer
   allocate-input-buffer-metadata
   ~ (original metadata pointer, new metadata pointer)
-  2dup swap 6 8 * memcopy
+  2dup 6 8 * memcopy
   ~ (original metadata pointer, new metadata pointer)
   swap dup zero-input-buffer-metadata
   input-buffer-next-source ! ;
@@ -237,7 +237,7 @@
 : pop-input-buffer
   dup input-buffer-next-source @
   ~ (original metadata pointer, next source metadata pointer)
-  dup { 6 8 * memcopy }
+  dup { swap 6 8 * memcopy }
       { drop zero-input-buffer-metadata } if-else ;
 
 
@@ -839,7 +839,7 @@ allocate-transform-state s" transform-state" variable
 ~ in dynamic.e before attempting to understand label-create-alternate.
 : label-create-alternate
   dup stringlen 1 + dup 3unroll
-  here @ 10 + 3unroll memmove
+  here @ 10 + swap memmove
   here @
 
   ~   This value of "latest" is going into the generated output, so we need
@@ -1066,8 +1066,8 @@ allocate-transform-state s" transform-state" variable
 ~
 ~ (start pointer, length --)
 : label-if-alternate
-  2dup swap dup 5 8 * + 3unroll swap
-  ~ (start pointer, length, start pointer, adjusted start pointer, length)
+  2dup swap dup 5 8 * + 3roll
+  ~ (start pointer, length, adjusted start pointer, start pointer, length)
   memmove
   ~ (start pointer, length)
   swap here @ swap here ! swap
@@ -1088,8 +1088,8 @@ allocate-transform-state s" transform-state" variable
 
 ~ (start pointer, length)
 : label-unless-alternate
-  2dup swap dup 5 8 * + 3unroll swap
-  ~ (start pointer, length, start pointer, adjusted start pointer, length)
+  2dup swap dup 5 8 * + 3roll
+  ~ (start pointer, length, adjusted start pointer, start pointer, length)
   memmove
   ~ (start pointer, length)
   swap here @ swap here ! swap
@@ -1116,9 +1116,8 @@ allocate-transform-state s" transform-state" variable
   ~ Those spaces will take five words, and two words, respectively. So the
   ~ false-block gets moved by seven words, and the true-block gets moved by
   ~ five words.
-  2dup swap dup 7 8 * + swap 3roll memmove
-  4 roll dup 5 unroll 4 roll dup 5 unroll
-  swap dup 5 8 * + swap 3roll memmove
+  2dup swap dup 7 8 * + 3roll memmove
+  3 pick dup 5 8 * + 4 pick memmove
   ~ (true start, true length, false start, false length)
 
   ~   Now we write out the initial test-and-branch.
@@ -1161,7 +1160,7 @@ allocate-transform-state s" transform-state" variable
 ~ (test start, test length, body start, body length --)
 : label-while-alternate
   ~ The conditional branch needs five words.
-  2dup swap dup 5 8 * + swap 3roll memmove
+  2dup swap dup 5 8 * + 3roll memmove
   here @ 5 unroll swap dup 3unroll here !
   ~ (old here, test start, test length, body start, body length)
   swap-transform-variables