]> git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/src/setjmp/arm/longjmp.S
Update to musl 1.1.24.
[wasi-libc.git] / libc-top-half / musl / src / setjmp / arm / longjmp.S
1 .syntax unified
2 .global _longjmp
3 .global longjmp
4 .type _longjmp,%function
5 .type longjmp,%function
6 _longjmp:
7 longjmp:
8 mov ip,r0
9 movs r0,r1
10 moveq r0,#1
11 ldmia ip!, {v1,v2,v3,v4,v5,v6,sl,fp}
12 ldmia ip!, {r2,lr}
13 mov sp,r2
14
15 adr r1,1f
16 ldr r2,1f
17 ldr r1,[r1,r2]
18
19 #if __ARM_ARCH < 8
20 tst r1,#0x260
21 beq 3f
22 // HWCAP_ARM_FPA
23 tst r1,#0x20
24 beq 2f
25 ldc p2, cr4, [ip], #48
26 #endif
27 2: tst r1,#0x40
28 beq 2f
29 .fpu vfp
30 vldmia ip!, {d8-d15}
31 .fpu softvfp
32 .eabi_attribute 10, 0
33 .eabi_attribute 27, 0
34 #if __ARM_ARCH < 8
35 // HWCAP_ARM_IWMMXT
36 2: tst r1,#0x200
37 beq 3f
38 ldcl p1, cr10, [ip], #8
39 ldcl p1, cr11, [ip], #8
40 ldcl p1, cr12, [ip], #8
41 ldcl p1, cr13, [ip], #8
42 ldcl p1, cr14, [ip], #8
43 ldcl p1, cr15, [ip], #8
44 #endif
45 2:
46 3: bx lr
47
48 .hidden __hwcap
49 .align 2
50 1: .word __hwcap-1b