; SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <stenzek@gmail.com>
; SPDX-License-Identifier: CC-BY-NC-ND-4.0
EXPORT fastjmp_set
EXPORT fastjmp_jmp
TEXTAREA
; void fastjmp_set(fastjmp_buf*)
LEAF_ENTRY fastjmp_set
mov x16, sp
stp x16, x30, [x0]
stp x19, x20, [x0,
stp x21, x22, [x0,
stp x23, x24, [x0,
stp x25, x26, [x0,
stp x27, x28, [x0,
str x29, [x0,
stp d8, d9, [x0,
stp d10, d11, [x0,
stp d12, d13, [x0,
stp d14, d15, [x0,
mov w0, wzr
br x30
LEAF_END
; void fastjmp_jmp(fastjmp_buf*, int)
LEAF_ENTRY fastjmp_jmp
ldp x16, x30, [x0]
mov sp, x16
ldp x19, x20, [x0,
ldp x21, x22, [x0,
ldp x23, x24, [x0,
ldp x25, x26, [x0,
ldp x27, x28, [x0,
ldr x29, [x0,
ldp d8, d9, [x0,
ldp d10, d11, [x0,
ldp d12, d13, [x0,
ldp d14, d15, [x0,
mov w0, w1
br x30
LEAF_END
END