diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-05-20 18:23:07 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-05-20 18:23:07 -0700 |
| commit | 53f52a67b7c5bb8af12c92a2f3a219e75dd9b0c3 (patch) | |
| tree | 87f2ce2c262a637cb7c5c48549b60afaae6da636 /log-load.e | |
| parent | dc84d26e2d6ffa1fb51e4d677876349a328a0afc (diff) | |
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
Diffstat (limited to 'log-load.e')
| -rw-r--r-- | log-load.e | 27 |
1 files changed, 26 insertions, 1 deletions
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. |