X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fi386%2Fclone.s;h=7af5f5db0715032af8f5745d48670ea0ed5f50d6;hb=fc0ecd35d8e0041c81bbe08c10c7fcb946da85e0;hp=4f33366c59b365dde82d62be6b02a5e03fa4d5ca;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/thread/i386/clone.s b/src/thread/i386/clone.s index 4f33366c..7af5f5db 100644 --- a/src/thread/i386/clone.s +++ b/src/thread/i386/clone.s @@ -1,35 +1,26 @@ .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