begin unifying clone/thread management interface in preparation for porting

This commit is contained in:
Rich Felker 2011-02-15 03:24:58 -05:00
commit 0b2006c8fe
3 changed files with 22 additions and 34 deletions

View file

@ -1,35 +1,27 @@
.text
.global __clone
.type __clone,%function
__clone:
movl 8(%esp),%ecx
andl $0xfffffff0, %ecx
subl $28,%ecx
movl 16(%esp),%eax
movl %eax,12(%ecx)
movl 4(%esp),%eax
movl %eax,8(%ecx)
.global __uniclone
.type __uniclone,%function
__uniclone:
movl 4(%esp),%ecx
subl $24,%ecx
movl 8(%esp),%eax
movl %eax,16(%ecx)
movl 12(%esp),%eax
movl %eax,24(%ecx)
pushl %ebx
pushl %esi
pushl %edi
pushl %ebp
movl %eax,8(%eax)
leal 20(%eax),%edx
leal 4(%eax),%esi
movl %edx,%edi
movl $0x7d0f00,%ebx
movl $120,%eax
movl 12+12(%esp),%ebx
movl 20+12(%esp),%edx
movl 24+12(%esp),%esi
movl 28+12(%esp),%edi
int $128
popl %ebp
popl %edi
popl %esi
popl %ebx
test %eax,%eax
jnz 1f
xorl %ebp,%ebp
call *%ebx
movl %eax, %ebx
movl $1, %eax
int $128
1:
movl %eax, 4(%esp)
ret
.size __clone,.-__clone
.size __uniclone,.-__uniclone