summary refs log tree commit diff
path: root/flow-control.e
diff options
context:
space:
mode:
Diffstat (limited to 'flow-control.e')
-rw-r--r--flow-control.e14
1 files changed, 7 insertions, 7 deletions
diff --git a/flow-control.e b/flow-control.e
index ba6a5b6..bee5038 100644
--- a/flow-control.e
+++ b/flow-control.e
@@ -25,8 +25,8 @@
 
 ~ (start pointer, length --)
 : if
-  2dup swap dup 5 8 * + 3unroll swap
-  ~ (start pointer, length, adjusted start pointer, start pointer, length)
+  2dup swap dup 5 8 * + 3roll
+  ~ (start pointer, length, start pointer, adjusted start pointer, length)
   memmove
   ~ (start pointer, length)
 
@@ -47,7 +47,7 @@
 
 ~ (start pointer, length --)
 : unless
-  2dup swap dup 5 8 * + 3unroll swap
+  2dup swap dup 5 8 * + 3roll
   ~ (start pointer, length, start pointer, adjusted start pointer, length)
   memmove
   ~ (start pointer, length)
@@ -71,9 +71,9 @@
   ~ 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
+  ~ (true start, true length, false start, false length)
+  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.
@@ -110,7 +110,7 @@
 ~ (test start, test length, body start, body length --)
 : while
   ~   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)
   ' lit entry-to-execution-token , 0 ,