38 lines
876 B
Plaintext
38 lines
876 B
Plaintext
|
|
import stdlib/stdlib.sl
|
||
|
|
import stdlib/io.sl
|
||
|
|
|
||
|
|
:asm persistent-size {
|
||
|
|
lea rax, [rel persistent_end]
|
||
|
|
lea rbx, [rel persistent]
|
||
|
|
sub rax, rbx
|
||
|
|
sub r12, 8
|
||
|
|
mov [r12], rax
|
||
|
|
}
|
||
|
|
;
|
||
|
|
|
||
|
|
word ss
|
||
|
|
# Override BSS to grow the persistent buffer.
|
||
|
|
bss-clear
|
||
|
|
"align 16" bss-append
|
||
|
|
"dstack: resb DSTK_BYTES" bss-append
|
||
|
|
"dstack_top:" bss-append
|
||
|
|
"align 16" bss-append
|
||
|
|
"rstack: resb RSTK_BYTES" bss-append
|
||
|
|
"rstack_top:" bss-append
|
||
|
|
"align 16" bss-append
|
||
|
|
"print_buf: resb PRINT_BUF_BYTES" bss-append
|
||
|
|
"print_buf_end:" bss-append
|
||
|
|
"align 16" bss-append
|
||
|
|
"persistent: resb 256" bss-append
|
||
|
|
"persistent_end:" bss-append
|
||
|
|
"align 16" bss-append
|
||
|
|
"list_capture_sp: resq 1" bss-append
|
||
|
|
"list_capture_tmp: resq 1" bss-append
|
||
|
|
"list_capture_stack: resq 1024" bss-append
|
||
|
|
end
|
||
|
|
|
||
|
|
word main
|
||
|
|
persistent-size
|
||
|
|
print
|
||
|
|
end
|
||
|
|
compile-time ss
|