1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * (C) 2018 Alexander Graf <agraf@suse.de>
7 #include <linux/linkage.h>
9 #ifdef CONFIG_ARCH_RV64I
10 #define STORE_IDX(reg, idx) sd reg, (idx*8)(a0)
11 #define LOAD_IDX(reg, idx) ld reg, (idx*8)(a0)
13 #define STORE_IDX(reg, idx) sw reg, (idx*4)(a0)
14 #define LOAD_IDX(reg, idx) lw reg, (idx*4)(a0)
17 .pushsection .text.setjmp, "ax"
19 /* Preserve all callee-saved registers and the SP */
39 .pushsection .text.longjmp, "ax"
56 /* Move the return value in place, but return 1 if passed 0. */
57 beq a1, zero, longjmp_1