diff options
Diffstat (limited to 'mdk-stage1/dietlibc/sparc/clone.S')
-rw-r--r-- | mdk-stage1/dietlibc/sparc/clone.S | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/mdk-stage1/dietlibc/sparc/clone.S b/mdk-stage1/dietlibc/sparc/clone.S deleted file mode 100644 index 58b438249..000000000 --- a/mdk-stage1/dietlibc/sparc/clone.S +++ /dev/null @@ -1,45 +0,0 @@ -#include <asm/errno.h> -#include <asm/unistd.h> - -.text -.align 4 -.weak clone -clone: -.global __clone -__clone: - save %sp, -96, %sp - - tst %i0 /* check for function pointer */ - be .Lerror - tst %i1 /* check for stack pointer */ - be .Lerror - nop - - mov %i1, %o1 /* child-stack */ - mov %i2, %o0 /* clone-flags */ - mov __NR_clone, %g1 - ta 0x10 /* syscall: clone */ - bcs .Lerror - - tst %o1 - bne .Lstart /* we are the child :) */ - nop - mov %o0, %i0 /* return child pid */ - ret - restore - -.Lerror: - call __errno_location - nop - mov EINVAL, %l0 - st %l0, [%o0] - ret - restore %g0, -1, %o0 - -.Lstart: - call %i0 /* call child-function */ - mov %i3, %o0 /* put arg in the right place for the child */ - - call _exit /* child returned */ - nop - |