summary refs log tree commit diff
path: root/quine.asm
diff options
context:
space:
mode:
Diffstat (limited to 'quine.asm')
-rw-r--r--quine.asm23
1 files changed, 20 insertions, 3 deletions
diff --git a/quine.asm b/quine.asm
index 44ff249..5419cd2 100644
--- a/quine.asm
+++ b/quine.asm
@@ -6080,9 +6080,28 @@ cold_start:
   ;;; Now here we have some "original" words that rely on the heap and don't
   ;;; have flatassembler-based equivalents.
 
+  ;   This has the distinction of having been written in Evocation, in
+  ; interpret.e, and then back-ported to flatassembler. This is the version
+  ; that makes clever use of memmove, if we do say so ourselves, to handle
+  ; immediate-mode string literals as input.
+  ;
   ; In:
   ;   name string
   dq litstring, "create", early_create, early_docol_codeword
+  dq litstring, "dup", early_find, entry_to_execution_token, early_comma
+  dq litstring, "stringlen", early_find, entry_to_execution_token, early_comma
+  dq litstring, "lit", early_find, entry_to_execution_token, early_comma
+  dq lit, 1, early_comma
+  dq litstring, "+", early_find, entry_to_execution_token, early_comma
+  dq litstring, "dup", early_find, entry_to_execution_token, early_comma
+  dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma
+  dq litstring, "here", early_find, entry_to_execution_token, early_comma
+  dq litstring, "@", early_find, entry_to_execution_token, early_comma
+  dq litstring, "lit", early_find, entry_to_execution_token, early_comma
+  dq lit, 10, early_comma
+  dq litstring, "+", early_find, entry_to_execution_token, early_comma
+  dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma
+  dq litstring, "memmove", early_find, entry_to_execution_token, early_comma
   dq litstring, "here", early_find, entry_to_execution_token, early_comma
   dq litstring, "@", early_find, entry_to_execution_token, early_comma
   dq litstring, "latest", early_find, entry_to_execution_token, early_comma
@@ -6094,9 +6113,7 @@ cold_start:
   dq litstring, "lit", early_find, entry_to_execution_token, early_comma
   dq lit, 0, early_comma
   dq litstring, "pack8", early_find, entry_to_execution_token, early_comma
-  dq litstring, "swap", early_find, entry_to_execution_token, early_comma
-  dq litstring, "packstring", early_find, entry_to_execution_token
-  dq early_comma
+  dq litstring, "+", early_find, entry_to_execution_token, early_comma
   dq litstring, "lit", early_find, entry_to_execution_token, early_comma
   dq lit, 8, early_comma
   dq litstring, "packalign", early_find, entry_to_execution_token, early_comma