diff options
author | austinf <austinf@localhost> | 2009-03-19 07:29:30 +0000 |
---|---|---|
committer | austinf <austinf@localhost> | 2009-03-19 07:29:30 +0000 |
commit | 2ea44632aac286a927069a1fb1f979db23c0b3c4 (patch) | |
tree | 405585f334c03e95c106924c03ed4642f80874a0 /libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S | |
parent | d38a60ef0325122761dea450cc163ac036d896e7 (diff) | |
download | uClibc-alpine-2ea44632aac286a927069a1fb1f979db23c0b3c4.tar.bz2 uClibc-alpine-2ea44632aac286a927069a1fb1f979db23c0b3c4.tar.xz |
sparc32 nptl functional
* pulled updated asm and headers from glibc for sparc32
* probably no cancellation support yet
* no shared TLS relocs yet, since ldso is hosed on sparc still
note: didn't use TARGET_SUBARCH method of includes since that would cause
other parts of libc to fail currently. Will need to be fixed later.
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S')
-rw-r--r-- | libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S index d804f0c4b..1a3827789 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S @@ -21,6 +21,7 @@ #include <tcb-offsets.h> .text + .globl __syscall_error ENTRY(__vfork) ld [%g7 + PID], %o5 cmp %o5, 0 @@ -31,16 +32,18 @@ ENTRY(__vfork) LOADSYSCALL(vfork) ta 0x10 - bcs,a __syscall_error_handler - st %o5, [%g7 + PID] - SYSCALL_ERROR_HANDLER - sub %o1, 1, %o1 + bcc 2f + mov %o7, %g1 + st %o5, [%g7 + PID] + call __syscall_error + mov %g1, %o7 +2: sub %o1, 1, %o1 andcc %o0, %o1, %o0 bne,a 1f st %o5, [%g7 + PID] 1: retl nop +END(__vfork) -PSEUDO_END (__vfork) -hidden_def (__vfork) +hidden_def (vfork) weak_alias (__vfork, vfork) |