add support for RTLD_NOLOAD to dlopen
[musl] / src / setjmp / arm / setjmp.s
1 .global __setjmp
2 .global _setjmp
3 .global setjmp
4 .type __setjmp,%function
5 .type _setjmp,%function
6 .type setjmp,%function
7 __setjmp:
8 _setjmp:
9 setjmp:
10         mov ip,r0
11         stmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp,sp,lr}
12         mov r0,#0
13
14         adr r1,1f
15         ldr r2,1f
16         ldr r1,[r1,r2]
17
18         tst r1,#0x260
19         beq 3f
20         tst r1,#0x20
21         beq 2f
22         stc p2, cr4, [ip], #48
23 2:      tst r1,#0x40
24         beq 2f
25         stc p11, cr8, [ip], #64
26 2:      tst r1,#0x200
27         beq 3f
28         stcl p1, cr10, [ip], #8
29         stcl p1, cr11, [ip], #8
30         stcl p1, cr12, [ip], #8
31         stcl p1, cr13, [ip], #8
32         stcl p1, cr14, [ip], #8
33         stcl p1, cr15, [ip], #8
34 3:      tst lr,#1
35         moveq pc,lr
36         bx lr
37
38 .hidden __hwcap
39 1:      .word __hwcap-1b