setjmp: optimize longjmp prologues
[musl] / src / setjmp / sh / setjmp.S
1 .global ___setjmp
2 .hidden ___setjmp
3 .global __setjmp
4 .global _setjmp
5 .global setjmp
6 .type   __setjmp, @function
7 .type   _setjmp,  @function
8 .type   setjmp,   @function
9 ___setjmp:
10 __setjmp:
11 _setjmp:
12 setjmp:
13 #if __SH_FPU_ANY__ || __SH4__
14         add   #52, r4
15         fmov.s fr15, @-r4
16         fmov.s fr14, @-r4
17         fmov.s fr13, @-r4
18         fmov.s fr12, @-r4
19 #else
20         add   #36, r4
21 #endif
22         sts.l  pr,   @-r4
23         mov.l  r15,  @-r4
24         mov.l  r14,  @-r4
25         mov.l  r13,  @-r4
26         mov.l  r12,  @-r4
27         mov.l  r11,  @-r4
28         mov.l  r10,  @-r4
29         mov.l  r9,   @-r4
30         mov.l  r8,   @-r4
31         rts
32          mov  #0, r0