From 53f52a67b7c5bb8af12c92a2f3a219e75dd9b0c3 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Wed, 20 May 2026 18:23:07 -0700 Subject: colon, semicolon, and compiled integers all work with log-load now yay next up is to figure out why calling newly-defined docol-based words with it does not work Force-Push: yes Change-Id: I9c5f50d20f43ad8a15b6db58e046f1e0bb158266 --- log-load.e | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'log-load.e') diff --git a/log-load.e b/log-load.e index 2c82d9f..f386b26 100644 --- a/log-load.e +++ b/log-load.e @@ -249,11 +249,36 @@ ~ (log address, value, here) @ swap pack64 ~ (log address, updated here value) - 3roll log-load-here swap 3unroll + swap log-load-here swap 3unroll ~ (log address, updated here value, here) ! ; +~ This is the same as `;asm`, from interpret.e, except that it takes the +~ log's address as a parameter rather than hardcoding it, so that it can be +~ used in situations where the normal compilation process isn't yet available. +~ +~ Its two main responsibilities are to call `pack-next`, from +~ execution-support.e, and to overwrite the codeword. It also deals with +~ alignment. +~ (log address) +: log-load-semicolon-assembly + log-load-here @ + ~ (log address, output point) + + pack-next + 8 packalign + ~ (log address, output point) + + swap log-load-here swap 3unroll ! + ~ (log address) + + log-load-latest @ + ~ (log address, entry pointer) + entry-to-execution-token + dup 8 + swap ! ; + + ~ This is the same as "variable", from interpret.e, except that it takes the ~ log's address as a parameter rather than hardcoding it, so that it can be ~ used in situations where the normal compilation process isn't yet available. -- cgit 1.4.1