added compile time intrinsics that allow for modification of the prelude and bss section
This commit is contained in:
1
tests/bss_override.expected
Normal file
1
tests/bss_override.expected
Normal file
@@ -0,0 +1 @@
|
||||
256
|
||||
38
tests/bss_override.sl
Normal file
38
tests/bss_override.sl
Normal file
@@ -0,0 +1,38 @@
|
||||
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
|
||||
1
tests/bss_override.test
Normal file
1
tests/bss_override.test
Normal file
@@ -0,0 +1 @@
|
||||
python main.py tests/bss_override.sl -o /tmp/bss_override > /dev/null && /tmp/bss_override
|
||||
Reference in New Issue
Block a user