1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * (C) 2017 Theobroma Systems Design und Consulting GmbH
8 #include <linux/linkage.h>
10 .pushsection .text.setjmp, "ax"
12 /* Preserve all callee-saved registers and the SP */
14 stp x21, x22, [x0,#16]
15 stp x23, x24, [x0,#32]
16 stp x25, x26, [x0,#48]
17 stp x27, x28, [x0,#64]
18 stp x29, x30, [x0,#80]
26 .pushsection .text.longjmp, "ax"
29 ldp x21, x22, [x0,#16]
30 ldp x23, x24, [x0,#32]
31 ldp x25, x26, [x0,#48]
32 ldp x27, x28, [x0,#64]
33 ldp x29, x30, [x0,#80]
36 /* Move the return value in place, but return 1 if passed 0. */