]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 13 Mar 2003 04:41:39 +0000 (04:41 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 13 Mar 2003 04:41:39 +0000 (04:41 +0000)
2003-03-13  Jakub Jelinek  <jakub@redhat.com>

* sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN,
ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3,
ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define.
(INTERNAL_SYSCALL, INLINE_SYSCALL): Use it.  Make syscall arguments
clobbered by the syscall.
(ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5,
ASM_ARGS_6): Change constraints from r to index of corresponding
output register.
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap
ptid and ctid to match kernel.
* sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise.

* sysdeps/powerpc/powerpc64/elf/configure.in: Remove
* sysdeps/powerpc/powerpc64/elf/configure: Regenerated.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/ia64/fork.c
sysdeps/unix/sysv/linux/ia64/clone2.S
sysdeps/unix/sysv/linux/ia64/sysdep.h
sysdeps/unix/sysv/linux/ia64/system.c

index 2b50fdb28478d67b8d111175be6496f362c2a0d4..17f55285a28232669a1c8e54c3e568096f96078b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,22 @@
+2003-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN,
+       ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3,
+       ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define.
+       (INTERNAL_SYSCALL, INLINE_SYSCALL): Use it.  Make syscall arguments
+       clobbered by the syscall.
+       (ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5,
+       ASM_ARGS_6): Change constraints from r to index of corresponding
+       output register.
+       * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap
+       ptid and ctid to match kernel.
+       * sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise.
+
 2003-03-12  Steven Munroe  <sjmunroe@us.ibm.com>
 
-        * sysdeps/powerpc/powerpc64/elf/configure.in: Remove
+       * sysdeps/powerpc/powerpc64/elf/configure.in: Remove
        AC_DEFINE(PI_STATIC_AND_HIDDEN).  Not supported for PowerPC64.
-        * sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
+       * sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
 
 2003-03-11  Roland McGrath  <roland@redhat.com>
 
index 5031d3a8ee56fcc0861810a90693fd12aae878d2..f3bc8e914b8b16491929298409891575219e4496 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
+       ctid to match kernel.
+
 2003-03-12  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
index b8d00bd98aab286b57a37e5a43052a97bda809e6..1502310f1dffe430d5b01a8f6163b55b59ee0b7c 100644 (file)
@@ -26,6 +26,6 @@
 #define ARCH_FORK() \
   INLINE_SYSCALL (clone2, 6,                                                 \
                  CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD,        \
-                 NULL, 0, &THREAD_SELF->tid, NULL, NULL)
+                 NULL, 0, NULL, &THREAD_SELF->tid, NULL)
 
 #include "../fork.c"
index bdd37ae6ae0be230486bd92c2912892b52786ecc..17620ff6460c4297992ee7dc2e6fe4c5b9c0cc79 100644 (file)
@@ -42,8 +42,8 @@ ENTRY(__clone2)
        mov out0=in3            /* Flags are first syscall argument.    */
        mov out1=in1            /* Stack address.                       */
        mov out2=in2            /* Stack size.                          */
-       mov out3=in7            /* Child TID Pointer                    */
-       mov out4=in5            /* Parent TID Pointer                   */
+       mov out3=in5            /* Parent TID Pointer                   */
+       mov out4=in7            /* Child TID Pointer                    */
        mov out5=in6            /* TLS pointer                          */
         DO_CALL (SYS_ify (clone2))
         cmp.eq p6,p0=-1,r10
index 4522fb9c30aaa717728d9209d2f664208b38b641..556e266de5126bd67f9a084f0784608b9307643c 100644 (file)
 
 #else /* not __ASSEMBLER__ */
 
+#define BREAK_INSN_1(num) "break " #num ";;\n\t"
+#define BREAK_INSN(num) BREAK_INSN_1(num)
+
 /* On IA-64 we have stacked registers for passing arguments.  The
    "out" registers end up being the called function's "in"
    registers.
     register long _r15 asm ("r15") = __NR_##name;              \
     long _retval;                                              \
     LOAD_ARGS_##nr (args);                                     \
-    __asm __volatile ("break %3;;\n\t"                         \
+    __asm __volatile (BREAK_INSN (__BREAK_SYSCALL)             \
                       : "=r" (_r8), "=r" (_r10), "=r" (_r15)   \
-                      : "i" (__BREAK_SYSCALL), "2" (_r15)      \
-                       ASM_ARGS_##nr                           \
+                       ASM_OUTARGS_##nr                        \
+                      : "2" (_r15) ASM_ARGS_##nr               \
                       : "memory" ASM_CLOBBERS_##nr);           \
     _retval = _r8;                                             \
     if (_r10 == -1)                                            \
     register long _r15 asm ("r15") = __NR_##name;              \
     long _retval;                                              \
     LOAD_ARGS_##nr (args);                                     \
-    __asm __volatile ("break %3;;\n\t"                         \
+    __asm __volatile (BREAK_INSN (__BREAK_SYSCALL)             \
                       : "=r" (_r8), "=r" (_r10), "=r" (_r15)   \
-                      : "i" (__BREAK_SYSCALL), "2" (_r15)      \
-                       ASM_ARGS_##nr                           \
+                       ASM_OUTARGS_##nr                        \
+                      : "2" (_r15) ASM_ARGS_##nr               \
                       : "memory" ASM_CLOBBERS_##nr);           \
     _retval = _r8;                                             \
     err = _r10;                                                        \
   register long _out5 asm ("out5") = (long) (out5);    \
   LOAD_ARGS_5 (out0, out1, out2, out3, out4)
 
+#define ASM_OUTARGS_0
+#define ASM_OUTARGS_1  ASM_OUTARGS_0, "=r" (_out0)
+#define ASM_OUTARGS_2  ASM_OUTARGS_1, "=r" (_out1)
+#define ASM_OUTARGS_3  ASM_OUTARGS_2, "=r" (_out2)
+#define ASM_OUTARGS_4  ASM_OUTARGS_3, "=r" (_out3)
+#define ASM_OUTARGS_5  ASM_OUTARGS_4, "=r" (_out4)
+#define ASM_OUTARGS_6  ASM_OUTARGS_5, "=r" (_out5)
+
 #define ASM_ARGS_0
-#define ASM_ARGS_1      ASM_ARGS_0, "r" (_out0)
-#define ASM_ARGS_2      ASM_ARGS_1, "r" (_out1)
-#define ASM_ARGS_3      ASM_ARGS_2, "r" (_out2)
-#define ASM_ARGS_4      ASM_ARGS_3, "r" (_out3)
-#define ASM_ARGS_5      ASM_ARGS_4, "r" (_out4)
-#define ASM_ARGS_6     ASM_ARGS_5, "r" (_out5)
+#define ASM_ARGS_1     ASM_ARGS_0, "3" (_out0)
+#define ASM_ARGS_2     ASM_ARGS_1, "4" (_out1)
+#define ASM_ARGS_3     ASM_ARGS_2, "5" (_out2)
+#define ASM_ARGS_4     ASM_ARGS_3, "6" (_out3)
+#define ASM_ARGS_5     ASM_ARGS_4, "7" (_out4)
+#define ASM_ARGS_6     ASM_ARGS_5, "8" (_out5)
 
 #define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
 #define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
index db4fcfe01552a2a4755b45bd856393393f3fa835..67a09cf232db568a2cbb8aa29a030ea3975c953d 100644 (file)
@@ -35,7 +35,7 @@
 #ifdef __ASSUME_CLONE_THREAD_FLAGS
 # define FORK() \
   INLINE_SYSCALL (clone2, 6, CLONE_PARENT_SETTID | SIGCHLD, NULL, 0, \
-                 NULL, &pid, NULL)
+                 &pid, NULL, NULL)
 #endif
 
 static void cancel_handler (void *arg);