Squash commits for public release
This commit is contained in:
35
libs/libc/setjmp/x86_64/setjmp.S
Normal file
35
libs/libc/setjmp/x86_64/setjmp.S
Normal file
@@ -0,0 +1,35 @@
|
||||
[bits 64]
|
||||
|
||||
global setjmp
|
||||
setjmp:
|
||||
mov [rdi], rbx
|
||||
mov [rdi+8], r12
|
||||
mov [rdi+16], r13
|
||||
mov [rdi+24], r14
|
||||
mov [rdi+32], r15
|
||||
mov [rdi+40], rbp
|
||||
mov [rdi+48], rsp
|
||||
|
||||
mov rax, [rsp]
|
||||
mov [rdi+56], rax
|
||||
|
||||
xor rax, rax
|
||||
ret
|
||||
|
||||
global longjmp
|
||||
longjmp:
|
||||
mov rbx, [rdi]
|
||||
mov r12, [rdi+8]
|
||||
mov r13, [rdi+16]
|
||||
mov r14, [rdi+24]
|
||||
mov r15, [rdi+32]
|
||||
mov rbp, [rdi+40]
|
||||
mov rsp, [rdi+48]
|
||||
mov rcx, [rdi+56]
|
||||
|
||||
mov rax, rsi
|
||||
test rax, rax
|
||||
jnz success
|
||||
mov rax, 1
|
||||
success:
|
||||
jmp rcx
|
||||
Reference in New Issue
Block a user