feat: port lua scripting language
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* setjmp.S
|
||||
* setjmp/longjmp for x86_64 MontaukOS userspace
|
||||
* Copyright (c) 2026 Daniel Hammer
|
||||
*/
|
||||
|
||||
.text
|
||||
|
||||
.global setjmp
|
||||
.type setjmp, @function
|
||||
setjmp:
|
||||
mov %rbx, (%rdi)
|
||||
mov %rbp, 8(%rdi)
|
||||
mov %r12, 16(%rdi)
|
||||
mov %r13, 24(%rdi)
|
||||
mov %r14, 32(%rdi)
|
||||
mov %r15, 40(%rdi)
|
||||
lea 8(%rsp), %rax
|
||||
mov %rax, 48(%rdi)
|
||||
mov (%rsp), %rax
|
||||
mov %rax, 56(%rdi)
|
||||
xor %eax, %eax
|
||||
ret
|
||||
|
||||
.global longjmp
|
||||
.type longjmp, @function
|
||||
longjmp:
|
||||
mov %esi, %eax
|
||||
test %eax, %eax
|
||||
jnz 1f
|
||||
inc %eax
|
||||
1:
|
||||
mov (%rdi), %rbx
|
||||
mov 8(%rdi), %rbp
|
||||
mov 16(%rdi), %r12
|
||||
mov 24(%rdi), %r13
|
||||
mov 32(%rdi), %r14
|
||||
mov 40(%rdi), %r15
|
||||
mov 48(%rdi), %rsp
|
||||
jmp *56(%rdi)
|
||||
Reference in New Issue
Block a user