aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sh/clone.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-02-08 02:34:27 +0000
committerUlrich Drepper <drepper@redhat.com>2003-02-08 02:34:27 +0000
commit2a051a7d1af290fee89e8b0a5ba8e5a86f325a25 (patch)
tree8f07fb2a508532e8675705d6c956506c3cece73e /sysdeps/unix/sysv/linux/sh/clone.S
parentd9c734e9cdab99931ddbbbc6de30a109be1483e6 (diff)
downloadglibc-2a051a7d1af290fee89e8b0a5ba8e5a86f325a25.tar
glibc-2a051a7d1af290fee89e8b0a5ba8e5a86f325a25.tar.gz
glibc-2a051a7d1af290fee89e8b0a5ba8e5a86f325a25.tar.bz2
glibc-2a051a7d1af290fee89e8b0a5ba8e5a86f325a25.zip
Update.
2003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp> * elf/tls-macros.h: Add non-PIC TLS macros and fix clobber list for SH. * sysdeps/unix/sysv/linux/sh/brk.c: Add SYSCALL_INST_PAD after the trapa instruction. * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Add additional parameters. * sysdeps/unix/sysv/linux/sh/sh4/sysdep.h: New file. (NEED_SYSCALL_INST_PAD): Define. * sysdeps/unix/sysv/linux/sh/sys/user.h (start_thread): Undef to avoid to use definition for the kernel. * sysdeps/unix/sysv/linux/sh/sysdep.h (SYSCALL_ERROR_HANDLER): Save and restore the frame pointer. (SYSCALL_INST_PAD): Define. (INLINE_SYSCALL): Make use of INTERNAL_SYSCALL. (INTERNAL_SYSCALL): Make use of ERR parameter. Add SYSCALL_INST_PAD after trapa instruction. (INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO, INTERNAL_SYSCALL_ERROR_P): Adjust accordingly.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sh/clone.S')
-rw-r--r--sysdeps/unix/sysv/linux/sh/clone.S8
1 files changed, 6 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index a6ddcc5336..713b0f9c3b 100644
--- a/sysdeps/unix/sysv/linux/sh/clone.S
+++ b/sysdeps/unix/sysv/linux/sh/clone.S
@@ -23,7 +23,8 @@
#define _ERRNO_H 1
#include <bits/errno.h>
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, void *tls, pid_t *ctid); */
.text
ENTRY(__clone)
@@ -43,8 +44,11 @@ ENTRY(__clone)
/* do the system call */
mov r6, r4
+ mov.l @r15, r6
+ mov.l @(8,r15), r7
+ mov.l @(4,r15), r0
mov #+SYS_ify(clone), r3
- trapa #0x12
+ trapa #0x15
mov r0, r1
mov #-12, r2
shad r2, r1