From 2744289422814ebfbdb8ccb4024699414d37551b Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Mon, 11 May 2026 20:43:33 -0700 Subject: backport the evoked "create" to flatassembler this lets us have immediate-mode string literals as parameters without having to worry about how fully bootstrapped we are Force-Push: yes Change-Id: I18510de6f916898e411b406959ba0eab7fccb319 --- quine.asm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'quine.asm') 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 -- cgit 1.4.1