summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-32/clone.S')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone.S18
1 files changed, 7 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
index cb2afbb8d1..73ccc288a0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -54,20 +54,16 @@ error:
PSEUDO_END (__clone)
thread_start:
- tmh %r3,1 /* CLONE_THREAD == 0x00010000 */
- jne 1f
- lhi %r2,-1
- tml %r3,256 /* CLONE_VM == 0x00000100 */
- jne 2f
- svc SYS_ify(getpid)
-2: ear %r3,%a0
- st %r2,PID(%r3)
- st %r2,TID(%r3)
-1:
+ cfi_startproc
+ /* Mark r14 as undefined in order to stop unwinding here! */
+ cfi_undefined (r14)
/* fn is in gpr 1, arg in gpr 0 */
lr %r2,%r0 /* set first parameter to void *arg */
ahi %r15,-96 /* make room on the stack for the save area */
xc 0(4,%r15),0(%r15)
basr %r14,%r1 /* jump to fn */
DO_CALL (exit, 1)
+ cfi_endproc
+
+libc_hidden_def (__clone)
weak_alias (__clone, clone)