fix __aeabi_read_tp oversight in arm atomics/tls overhaul
[musl] / src / thread / arm / clone.s
1 .text
2 .global __clone
3 .type   __clone,%function
4 __clone:
5         stmfd sp!,{r4,r5,r6,r7}
6         mov r7,#120
7         mov r6,r3
8         mov r5,r0
9         mov r0,r2
10         and r1,r1,#-16
11         ldr r2,[sp,#16]
12         ldr r3,[sp,#20]
13         ldr r4,[sp,#24]
14         svc 0
15         tst r0,r0
16         beq 1f
17         ldmfd sp!,{r4,r5,r6,r7}
18         tst lr,#1
19         moveq pc,lr
20         bx lr
21
22 1:      mov r0,r6
23         tst r5,#1
24         bne 1f
25         mov lr,pc
26         mov pc,r5
27 2:      mov r7,#1
28         svc 0
29
30 1:      mov lr,pc
31         bx r5
32         b 2b