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