From e7390b9f2f8da8ea0b89705ba8c25cca977a071c Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Sat, 6 Jun 2026 11:17:16 -0700 Subject: first steps towards the hex transform quite a lot is implemented, but there is quite a lot still to go. at any rate it compiles cleanly and this seemed like a good point to check things in. Change-Id: I634bb3b2f1b10702cf63cb73c0a995983b5041f2 Force-Push: yes --- quine.asm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'quine.asm') diff --git a/quine.asm b/quine.asm index 2df2d3a..f11b435 100644 --- a/quine.asm +++ b/quine.asm @@ -1883,7 +1883,7 @@ _start: ;;; These will be the permanent homes of these values, though we have ;;; copies of them elsewhere while we're still in this routine. ;;; - mov.qreg.disp32.qreg rdi, control_stack_size + 0x00, rdi ; heap + mov.qreg.disp32.qreg rdi, control_stack_size + 0x00, rdi ; log mov.qreg.disp32.qreg rdi, control_stack_size + 0x08, rsp ; s0 mov.qreg.disp32.qreg rdi, control_stack_size + 0x10, rbp ; r0 mov.qreg.qimm rax, final_word_name @@ -1891,9 +1891,14 @@ _start: lea.qreg.disp32.qreg rax, control_stack_size + 0x28, rdi mov.qreg.disp32.qreg rdi, control_stack_size + 0x20, rax ; here ;;; - ;;; * "heap" is the physical bottom of the heap - ;;; The heap grows upwards in memory, so this is also the logical + ;;; * "log" is the physical bottom of the log + ;;; The log grows upwards in memory, so this is also the logical ;;; bottom. This comes from the address mmap() just returned to us. + ;;; The rest of quine.asm refers to the log as the heap. It's not a + ;;; heap, but it used to be called that. The self-hosted version of + ;;; Evocation has the fully revised and reconciled copy of all these + ;;; comments, it just felt like unnecessary tedium to do that here as + ;;; well. ;;; * "s0" is the logical bottom of the value stack ;;; The value stack grows downwards in memory, so this is the physical ;;; top of it. This comes from the stack pointer the kernel initialized us @@ -2018,7 +2023,7 @@ cold_start: ;;; This is the only hardcoding we need to do; by building on top of it, ;;; we will soon reach a point where the rest of the system can be defined ;;; within itself. - dq early_heap, litstring, "heap", early_variable + dq early_heap, litstring, "log", early_variable dq early_s0, litstring, "s0", early_variable dq early_r0, litstring, "r0", early_variable dq early_latest, litstring, "latest", early_variable @@ -11966,7 +11971,7 @@ defword boot_source, 0x40 ; This use of bitwise and is okay because they're both either 0 or 1. ; We'll have logical and real soon now, be patient... :) - dq ": is-in-heap dup heap @ <= swap here @ > & ; " + dq ": is-in-heap dup log @ <= swap here @ > & ; " ; dq ": unlink-pre-heap-words " ; dq " latest @ " -- cgit 1.4.1