platform_bionic/libc/arch-x86/syscalls/__sys_clone.S
David 'Digit' Turner 97cf7f3394 Implement clone() C library function properly.
Only provide an implementation for ARM at the moment, since
it requires specific assembly fragments (the standard syscall
stubs cannot be used because the child returns in a different
stack).
2010-01-25 11:18:30 -08:00

35 lines
668 B
ArmAsm

/* autogenerated by gensyscalls.py */
#include <sys/linux-syscalls.h>
.text
.type __sys_clone, @function
.globl __sys_clone
.align 4
__sys_clone:
pushl %ebx
pushl %ecx
pushl %edx
pushl %esi
pushl %edi
mov 24(%esp), %ebx
mov 28(%esp), %ecx
mov 32(%esp), %edx
mov 36(%esp), %esi
mov 40(%esp), %edi
movl $__NR_clone, %eax
int $0x80
cmpl $-129, %eax
jb 1f
negl %eax
pushl %eax
call __set_errno
addl $4, %esp
orl $-1, %eax
1:
popl %edi
popl %esi
popl %edx
popl %ecx
popl %ebx
ret