wasmer/lib/llvm-backend/cpp/unwinding.s

28 lines
382 B
ArmAsm

# (save_place, func(userdata), userdata)
.globl _unwinding_setjmp
_unwinding_setjmp:
push %r15
push %r14
push %r13
push %r12
push %rbx
push %rbp
sub $8, %rsp # 16-byte alignment
mov %rsp, (%rdi)
mov %rdx, %rdi
callq *%rsi
setjmp_ret:
add $8, %rsp
pop %rbp
pop %rbx
pop %r12
pop %r13
pop %r14
pop %r15
ret
.globl _unwinding_longjmp
_unwinding_longjmp:
mov %rdi, %rsp
jmp setjmp_ret