about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-02-13 11:46:38 -0800
committerH.J. Lu <hjl.tools@gmail.com>2021-02-22 04:30:38 -0800
commitebbb8c9f64c3486603ef4ccee4dd2a5574e41039 (patch)
tree2119453ba4c6feff51602daf3a7eebd289b28467 /sysdeps/unix/sysv
parentf8ff5a3cc2e401c586244bbdc27ea236229b7cb7 (diff)
downloadglibc-ebbb8c9f64c3486603ef4ccee4dd2a5574e41039.tar.gz
glibc-ebbb8c9f64c3486603ef4ccee4dd2a5574e41039.tar.xz
glibc-ebbb8c9f64c3486603ef4ccee4dd2a5574e41039.zip
x86_64/clone.S: Upate comments
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S14
1 files changed, 8 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index 51638d897b..31ac12da0c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -24,18 +24,20 @@
 #include <asm-syntax.h>
 
 /* The userland implementation is:
-   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 *parent_tid, void *tls, pid_t *child_tid);
    the kernel entry is:
-   int clone (long flags, void *child_stack).
+   int clone (long flags, void *child_stack, pid_t *parent_tid,
+	      pid_t *child_tid, void *tls);
 
    The parameters are passed in register and on the stack from userland:
    rdi: fn
    rsi: child_stack
    rdx:	flags
    rcx: arg
-   r8d:	TID field in parent
-   r9d: thread pointer
-%esp+8:	TID field in child
+    r8:	TID field in parent
+    r9: thread pointer
+%rsp+8:	TID field in child
 
    The kernel expects:
    rax: system call number
@@ -60,7 +62,7 @@ ENTRY (__clone)
 	movq	%rcx,8(%rsi)
 
 	/* Save the function pointer.  It will be popped off in the
-	   child in the ebx frobbing below.  */
+	   child.  */
 	movq	%rdi,0(%rsi)
 
 	/* Do the system call.  */