summaryrefslogtreecommitdiff
path: root/sanctuary.s
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-03-16 00:30:08 +1100
committerkitty <nepeta@canaglie.net>2026-03-16 00:30:08 +1100
commitc46d6efecc69641a36ef35af333e8c49f4aba631 (patch)
treeb99596bef85ade5e8cec2f67ce79875b5dce7f04 /sanctuary.s
parent2a806c6fbc434d4cdd51d5e64019775c40c34475 (diff)
.s: the return of DONEDONEYIPPEEE
Diffstat (limited to 'sanctuary.s')
-rw-r--r--sanctuary.s39
1 files changed, 39 insertions, 0 deletions
diff --git a/sanctuary.s b/sanctuary.s
index c5eac72..09045c0 100644
--- a/sanctuary.s
+++ b/sanctuary.s
@@ -223,6 +223,45 @@ defcode "type", type, 0
syscall
ret
+; .s {{{
+defcode ".s", dots, 0
+ push r11
+ push r12
+
+ mov r12, r15
+.loop:
+ cmp r12, wstk
+ jge .done
+
+ mov [.space], r12
+ mov rdx, 8 ; qword
+ mov rsi, .space
+ mov rdi, 1
+ mov rax, __NR_write
+ syscall
+
+ mov rdx, 8 ; qword
+ mov rsi, r12
+ mov rdi, 1
+ mov rax, __NR_write
+ syscall
+ lea r12, [r12+8]
+ jmp .loop
+
+.done:
+ mov rdx, 16 ; 2 qword
+ mov rsi, .dmsg
+ mov rdi, 1
+ mov rax, __NR_write
+ syscall
+
+ pop r12
+ pop r11
+ ret
+.space: resq 1
+.dmsg: db "DONEDONEYIPPEEEE"
+; }}}
+
defvar "state", state, 0, INTERPRET
defvar "dp", dp, 0, 0
defvar "dp0", dp0, 0, 0