4f33366c59b365dde82d62be6b02a5e03fa4d5ca
[musl] / src / thread / i386 / clone.s
1 .text
2 .global __clone
3 .type   __clone,%function
4 __clone:
5         movl    8(%esp),%ecx
6         andl    $0xfffffff0, %ecx
7         subl    $28,%ecx
8         movl    16(%esp),%eax
9         movl    %eax,12(%ecx)
10         movl    4(%esp),%eax
11         movl    %eax,8(%ecx)
12         pushl   %ebx
13         pushl   %esi
14         pushl   %edi
15         movl    $120,%eax
16         movl    12+12(%esp),%ebx
17         movl    20+12(%esp),%edx
18         movl    24+12(%esp),%esi
19         movl    28+12(%esp),%edi
20         int     $128
21         popl    %edi
22         popl    %esi
23         popl    %ebx
24         test    %eax,%eax
25         jnz     1f
26         xorl    %ebp,%ebp
27         call    *%ebx
28         movl    %eax, %ebx
29         movl    $1, %eax
30         int     $128
31 1:      
32         movl %eax, 4(%esp)
33         ret
34
35 .size __clone,.-__clone