remove fenv saving/loading code from setjmp/longjmp on arm
[musl] / src / setjmp / arm / longjmp.s
1 .global _longjmp
2 .global longjmp
3 .type _longjmp,%function
4 .type longjmp,%function
5 _longjmp:
6 longjmp:
7         mov ip,r0
8         movs r0,r1
9         moveq r0,#1
10         ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp,sp,lr}
11
12         adr r1,1f
13         ldr r2,1f
14         ldr r1,[r1,r2]
15
16         tst r1,#0x260
17         beq 3f
18         tst r1,#0x20
19         beq 2f
20         ldc p2, cr4, [ip], #48
21 2:      tst r1,#0x40
22         beq 2f
23         ldc p11, cr8, [ip], #64
24 2:      tst r1,#0x200
25         beq 3f
26         ldcl p1, cr10, [ip], #8
27         ldcl p1, cr11, [ip], #8
28         ldcl p1, cr12, [ip], #8
29         ldcl p1, cr13, [ip], #8
30         ldcl p1, cr14, [ip], #8
31         ldcl p1, cr15, [ip], #8
32 3:      tst lr,#1
33         moveq pc,lr
34         bx lr
35
36 .hidden __hwcap
37 1:      .word __hwcap-1b