blob: 52fe7efbd442ca561bc9ddac05216433c9665a45 [file] [log] [blame]
.text
.global __clone
.type __clone,@function
__clone:
push %ebp
mov %esp,%ebp
push %ebx
push %esi
push %edi
xor %eax,%eax
push $0x51
mov %gs,%ax
push $0xfffff
shr $3,%eax
push 28(%ebp)
push %eax
mov $120,%al
mov 12(%ebp),%ecx
mov 16(%ebp),%ebx
and $-16,%ecx
sub $16,%ecx
mov 20(%ebp),%edi
mov %edi,(%ecx)
mov 24(%ebp),%edx
mov %esp,%esi
mov 32(%ebp),%edi
mov 8(%ebp),%ebp
int $128
test %eax,%eax
jnz 1f
mov %ebp,%eax
xor %ebp,%ebp
call *%eax
mov %eax,%ebx
xor %eax,%eax
inc %eax
int $128
hlt
1: add $16,%esp
pop %edi
pop %esi
pop %ebx
pop %ebp
ret