fix order of syscall args for microblaze clone syscall
[musl] / src / thread / microblaze / clone.s
1 .global __clone
2 .weak clone
3 .type   __clone,@function
4 .type   clone,@function
5
6 # r5, r6, r7, r8, r9, r10, stack
7 # fn, st, fl, ar, pt, tl, ct
8 # fl, st, __, pt, ct, tl
9
10 __clone:
11 clone:
12         andi    r6, r6, -16
13         addi    r6, r6, -16
14         swi     r5, r6, 0
15         swi     r8, r6, 4
16
17         ori     r5, r7, 0
18         ori     r8, r9, 0
19         lwi     r9, r1, 28
20         ori     r12, r0, 120
21
22         brki    r14, 8
23         beqi    r3, 1f
24         rtsd    r15, 8
25         nop
26         
27 1:      lwi     r3, r1, 0
28         lwi     r5, r1, 4
29         brald   r15, r3
30         nop
31         ori     r12, r0, 1
32         brki    r14, 8