add floating point register saving/restoring to mips setjmp/longjmp
[musl] / src / setjmp / mips / longjmp.s
1 .set noreorder
2
3 .global _longjmp
4 .global longjmp
5 .type   _longjmp,@function
6 .type   longjmp,@function
7 _longjmp:
8 longjmp:
9         move    $2, $5
10         bne     $2, $0, 1f
11         nop
12         addu    $2, $2, 1
13 1:      lw      $8,  48($4)
14         ctc1    $8,  $31
15         lwc1    $20, 56($4)
16         lwc1    $21, 60($4)
17         lwc1    $22, 64($4)
18         lwc1    $23, 68($4)
19         lwc1    $24, 72($4)
20         lwc1    $25, 76($4)
21         lwc1    $26, 80($4)
22         lwc1    $27, 84($4)
23         lwc1    $28, 88($4)
24         lwc1    $29, 92($4)
25         lwc1    $30, 96($4)
26         lwc1    $31, 100($4)
27         lw      $ra,  0($4)
28         lw      $sp,  4($4)
29         lw      $16,  8($4)
30         lw      $17, 12($4)
31         lw      $18, 16($4)
32         lw      $19, 20($4)
33         lw      $20, 24($4)
34         lw      $21, 28($4)
35         lw      $22, 32($4)
36         lw      $23, 36($4)
37         lw      $30, 40($4)
38         jr      $ra
39         lw      $28, 44($4)