diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-08 02:34:27 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-08 02:34:27 +0000 |
commit | 2a051a7d1af290fee89e8b0a5ba8e5a86f325a25 (patch) | |
tree | 8f07fb2a508532e8675705d6c956506c3cece73e /sysdeps/unix/sysv/linux/sh/clone.S | |
parent | d9c734e9cdab99931ddbbbc6de30a109be1483e6 (diff) | |
download | glibc-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.S | 8 |
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 |