add loongarch64 port
[musl.git] / src / setjmp / loongarch64 / longjmp.S
blob896d2e261e32e72fc1d7e0b1b6ed51e4d86354ce
1 .global _longjmp
2 .global longjmp
3 .type   _longjmp,@function
4 .type   longjmp,@function
5 _longjmp:
6 longjmp:
7         ld.d    $ra, $a0, 0
8         ld.d    $sp, $a0, 8
9         ld.d    $r21,$a0, 16
10         ld.d    $fp, $a0, 24
11         ld.d    $s0, $a0, 32
12         ld.d    $s1, $a0, 40
13         ld.d    $s2, $a0, 48
14         ld.d    $s3, $a0, 56
15         ld.d    $s4, $a0, 64
16         ld.d    $s5, $a0, 72
17         ld.d    $s6, $a0, 80
18         ld.d    $s7, $a0, 88
19         ld.d    $s8, $a0, 96
20 #ifndef __loongarch_soft_float
21         fld.d   $fs0, $a0, 104
22         fld.d   $fs1, $a0, 112
23         fld.d   $fs2, $a0, 120
24         fld.d   $fs3, $a0, 128
25         fld.d   $fs4, $a0, 136
26         fld.d   $fs5, $a0, 144
27         fld.d   $fs6, $a0, 152
28         fld.d   $fs7, $a0, 160
29 #endif
30         sltui   $a0, $a1, 1
31         add.d   $a0, $a0, $a1
32         jr      $ra