From 8f76c163e577393bda45d9c98745bb4670f27f10 Mon Sep 17 00:00:00 2001 From: kitty Date: Sat, 21 Mar 2026 01:30:36 +1100 Subject: quite a lot the documentation descriptions Leave a Lot to be Desired --- sanctuary.s | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to 'sanctuary.s') diff --git a/sanctuary.s b/sanctuary.s index 53749cc..7c47326 100644 --- a/sanctuary.s +++ b/sanctuary.s @@ -513,16 +513,11 @@ defcode "char", char, 0 pspush r11 ret -defcode "(execute)", do_execute, 0 +defcode "execute", execute, 0 pspop r11 call r11 ret -defcode "execute", execute, 0 - call to_body - call do_execute - ret - ; number {{{ defcode "number", number, 0 ; ( c-addr u -- ?n flag ) pspop r11 ; u @@ -720,6 +715,12 @@ defcode "!", store, 0 mov qword [r11], r12 ret +defcode "d!", dstore, 0 + pspop r11 + pspop r12 + mov dword [r11], r12d + ret + defcode "c!", cstore, 0 pspop r11 pspop r12 @@ -740,26 +741,26 @@ defcode "-!", minusstore, 0 defcode ",", comma, 0 pspop r11 - mov r12, [here] + mov r12, [dp] mov qword [r12], r11 add r12, 8 - mov qword [here], r12 + mov qword [dp], r12 ret defcode "d,", d_comma, 0 pspop r11 - mov r12, [here] + mov r12, [dp] mov dword [r12], r11d - inc r12 - mov qword [here], r12 + add r12, 4 + mov qword [dp], r12 ret defcode "c,", c_comma, 0 pspop r11 - mov r12, [here] + mov r12, [dp] mov byte [r12], r11b inc r12 - mov qword [here], r12 + mov qword [dp], r12 ret defcode "cmove", _cmove, 0 @@ -825,21 +826,21 @@ defcode "/mod", divmod, 0 defcode "and", _and, 0 pspop r11 - and [r14], r11 + and [r15], r11 ret defcode "or", _or, 0 pspop r11 - or [r14], r11 + or [r15], r11 ret defcode "xor", _xor, 0 pspop r11 - xor [r14], r11 + xor [r15], r11 ret defcode "invert", invert, 0 - not qword [r14] + not qword [r15] ret defcode "*/mod", starslashmod, 0 @@ -970,20 +971,24 @@ defcode "0>=", zero_greatereq, 0 ; }}} defcode "branch", branch, 0 - mov r12, [here] + mov r12, [dp] mov byte [r12], 0xe9 inc r12 - mov qword [here], r12 + mov qword [dp], r12 ret +; 4d 8b 1f mov r11, qword [r15] +; 4d 8d 7f 08 lea r15, [r15+8] +; 4d 85 db test r11, r11 +; 0f 84 [REL] je [REL] defcode "?branch", q_branch, 0 - mov r12, [here] - mov r11, 0x4d08768d4d1e8b4d ; pspop r11, first bit of test r11, r11 + mov r12, [dp] + mov r11, 0x4d087f8d4d1f8b4d mov qword [r12], r11 add r12, 8 - mov dword [r12], 0x840fdb85 ; rest of ^, je + mov dword [r12], 0x840fdb85 add r12, 4 - mov qword [here], r12 + mov qword [dp], r12 ret ; error handling {{{ -- cgit v1.2.3