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