add riscv64 architecture support
[musl] / src / setjmp / riscv64 / longjmp.S
1 .global __longjmp
2 .global _longjmp
3 .global longjmp
4 .type __longjmp, %function
5 .type _longjmp,  %function
6 .type longjmp,   %function
7 __longjmp:
8 _longjmp:
9 longjmp:
10         ld s0,    0(a0)
11         ld s1,    8(a0)
12         ld s2,    16(a0)
13         ld s3,    24(a0)
14         ld s4,    32(a0)
15         ld s5,    40(a0)
16         ld s6,    48(a0)
17         ld s7,    56(a0)
18         ld s8,    64(a0)
19         ld s9,    72(a0)
20         ld s10,   80(a0)
21         ld s11,   88(a0)
22         ld sp,    96(a0)
23         ld ra,    104(a0)
24
25 #ifndef __riscv_float_abi_soft
26         fld fs0,  112(a0)
27         fld fs1,  120(a0)
28         fld fs2,  128(a0)
29         fld fs3,  136(a0)
30         fld fs4,  144(a0)
31         fld fs5,  152(a0)
32         fld fs6,  160(a0)
33         fld fs7,  168(a0)
34         fld fs8,  176(a0)
35         fld fs9,  184(a0)
36         fld fs10, 192(a0)
37         fld fs11, 200(a0)
38 #endif
39
40         seqz a0, a1
41         add a0, a0, a1
42         ret