xref: /haiku/src/system/libroot/posix/arch/riscv64/siglongjmp.S (revision 899e0ef82b5624ace2ccfa5f5a58c8ebee54aaef)
1/*
2 * Copyright 2019, Adrien Destugues, pulkomandy@pulkomandy.tk
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <asm_defs.h>
8
9
10# TODO: FPU?
11
12/* int __siglongjmp(jmp_buf buffer, int value) */
13FUNCTION(siglongjmp):
14FUNCTION(longjmp):
15FUNCTION(_longjmp):
16	ld ra,   0*8(a0)
17	ld s0,   1*8(a0)
18	ld s1,   2*8(a0)
19	ld s2,   3*8(a0)
20	ld s3,   4*8(a0)
21	ld s4,   5*8(a0)
22	ld s5,   6*8(a0)
23	ld s6,   7*8(a0)
24	ld s7,   8*8(a0)
25	ld s8,   9*8(a0)
26	ld s9,  10*8(a0)
27	ld s10, 11*8(a0)
28	ld s11, 12*8(a0)
29	ld sp,  13*8(a0)
30
31	tail __longjmp_return
32FUNCTION_END(siglongjmp)
33FUNCTION_END(longjmp)
34FUNCTION_END(_longjmp)
35
36#pragma weak longjmp=siglongjmp
37