commit dd575ad8780f3f389dd9b9392045fa1c6c1d76b2
parent 7df821c9c74d635c77ca7e5e119c4be28f71f81a
Author: Christian Ermann <christianermann@gmail.com>
Date: Mon, 2 Dec 2024 16:59:30 -0800
Replace '; immediate' with ';macro'
Diffstat:
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/forth.s b/src/forth.s
@@ -1513,22 +1513,26 @@ defword ";", semicolon, 0x3E0CB6DA, flags=flag_immediate
jal l_bracket
exit
-defcode "immediate?", immediate_q, 0x89F23E9F
+defcode "macro", macro, 0x36A3CAD3
+ addi w, w, flag_offset
+ lb x, 0(w)
+ ori x, x, flag_immediate
+ sb x, 0(w)
pop w
- addi w, w, flag_offset - code_offset
+ next
+
+defcode "macro?", macro_q, 0xEFD87184
+ addi w, w, flag_offset
lb w, 0(w)
andi w, w, flag_immediate
- push w
next
-defcode "immediate", immediate, 0xF232267A
- la x, _latest
- load_cell x, 0(x)
- addi x, x, flag_offset
- lb y, 0(x)
- ori y, y, flag_immediate
- sb y, 0(x)
- next
+defword ";macro", semicolon_macro, 0x599E1C06, flags=flag_immediate
+ jal semicolon
+ jal latest
+ jal fetch
+ jal macro
+ exit
defword "variable", variable, 0x19385305
jal create