xref: /haiku/src/system/libroot/posix/arch/arm64/sigsetjmp.S (revision d5f2742d1f2844e45ad9703d7f7c416d05dc454b)
1cbdb30f4SJaroslaw Pelczar/*
2cbdb30f4SJaroslaw Pelczar * Copyright 2019, Haiku, Inc. All rights reserved.
3cbdb30f4SJaroslaw Pelczar * Distributed under the terms of the MIT License.
4cbdb30f4SJaroslaw Pelczar */
5cbdb30f4SJaroslaw Pelczar
6cbdb30f4SJaroslaw Pelczar#include <asm_defs.h>
7cbdb30f4SJaroslaw Pelczar
8cbdb30f4SJaroslaw Pelczar/* int sigsetjmp(jmp_buf buffer, int saveMask) */
9cbdb30f4SJaroslaw PelczarFUNCTION(__sigsetjmp):
10cbdb30f4SJaroslaw PelczarFUNCTION(sigsetjmp):
11444980deSmilek7	stp x19, x20, [x0], #16
12444980deSmilek7	stp x21, x22, [x0], #16
13444980deSmilek7	stp x23, x24, [x0], #16
14444980deSmilek7	stp x25, x26, [x0], #16
15444980deSmilek7	stp x27, x28, [x0], #16
16444980deSmilek7	stp x29, x30, [x0], #16
17444980deSmilek7
18444980deSmilek7	mov x2, sp
19*d5f2742dSmilek7	str x2, [x0], #8
20*d5f2742dSmilek7
21*d5f2742dSmilek7	stp  d8,  d9, [x0], #16
22*d5f2742dSmilek7	stp d10, d11, [x0], #16
23*d5f2742dSmilek7	stp d12, d13, [x0], #16
24*d5f2742dSmilek7	stp d14, d15, [x0], #16
25444980deSmilek7
26444980deSmilek7	b __setjmp_save_sigs
27cbdb30f4SJaroslaw PelczarFUNCTION_END(sigsetjmp)
28cbdb30f4SJaroslaw PelczarFUNCTION_END(__sigsetjmp)
29cbdb30f4SJaroslaw Pelczar
30cbdb30f4SJaroslaw Pelczar
31cbdb30f4SJaroslaw Pelczar/* int setjmp(jmp_buf buffer) */
32cbdb30f4SJaroslaw PelczarFUNCTION(setjmp):
33cbdb30f4SJaroslaw PelczarFUNCTION(_setjmp):
34444980deSmilek7	mov x1, #0
35444980deSmilek7	b __sigsetjmp
36444980deSmilek7FUNCTION_END(_setjmp)
37cbdb30f4SJaroslaw PelczarFUNCTION_END(setjmp)
38cbdb30f4SJaroslaw Pelczar
39cbdb30f4SJaroslaw Pelczar#pragma weak _setjmp=setjmp
40