1/*
2 * Copyright 2019, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <asm_defs.h>
8
9
10/* int __siglongjmp(jmp_buf buffer, int value) */
11FUNCTION(siglongjmp):
12FUNCTION(longjmp):
13FUNCTION(_longjmp):
14	ldp x19, x20, [x0], #16
15	ldp x21, x22, [x0], #16
16	ldp x23, x24, [x0], #16
17	ldp x25, x26, [x0], #16
18	ldp x27, x28, [x0], #16
19	ldp x29, x30, [x0], #16
20
21	ldr x2, [x0], #8
22	mov sp, x2
23
24	ldp  d8,  d9, [x0], #16
25	ldp d10, d11, [x0], #16
26	ldp d12, d13, [x0], #16
27	ldp d14, d15, [x0], #16
28
29	b __longjmp_return
30FUNCTION_END(siglongjmp)
31FUNCTION_END(longjmp)
32FUNCTION_END(_longjmp)
33
34#pragma weak longjmp=siglongjmp
35