use libc-internal malloc for newlocale/freelocale
[musl] / src / thread / arm / clone.s
1 .syntax unified
2 .text
3 .global __clone
4 .hidden __clone
5 .type   __clone,%function
6 __clone:
7         stmfd sp!,{r4,r5,r6,r7}
8         mov r7,#120
9         mov r6,r3
10         mov r5,r0
11         mov r0,r2
12         and r1,r1,#-16
13         ldr r2,[sp,#16]
14         ldr r3,[sp,#20]
15         ldr r4,[sp,#24]
16         svc 0
17         tst r0,r0
18         beq 1f
19         ldmfd sp!,{r4,r5,r6,r7}
20         bx lr
21
22 1:      mov r0,r6
23         bl 3f
24 2:      mov r7,#1
25         svc 0
26         b 2b
27
28 3:      bx r5