diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S index 97849a5b26..3bfd025984 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S @@ -28,7 +28,8 @@ all the freaky stuff we have to do to make the call useful. */ /* int [r3] clone(int (*fn)(void *arg) [r3], void *child_stack [r4], - int flags [r5], void *arg [r6]); */ + int flags [r5], void *arg [r6], void *parent_tid [r7], + void *tls [r8], void *child_tid [r9]); */ ENTRY (BP_SYM (__clone)) /* GKM FIXME: add bounds checks, where sensible. */ @@ -59,6 +60,11 @@ ENTRY (BP_SYM (__clone)) argument is the stack pointer, already in r4.) */ mr r3,r5 + /* Move the parent_tid, child_tid and tls arguments. */ + mr r5,r7 + mr r6,r8 + mr r7,r9 + /* Do the call. */ DO_CALL(SYS_ify(clone)) |