void *__copy_tls(unsigned char *);
void __reset_tls();
-int __clone(int (*)(void *), void *, int, void *, ...);
+hidden int __clone(int (*)(void *), void *, int, void *, ...);
int __set_thread_area(void *);
int __libc_sigaction(int, const struct sigaction *, struct sigaction *);
void __unmapself(void *, size_t);
// x8, x0, x1, x2, x3, x4
.global __clone
+.hidden __clone
.type __clone,%function
__clone:
// align stack and save func,arg
.syntax unified
.text
.global __clone
+.hidden __clone
.type __clone,%function
__clone:
stmfd sp!,{r4,r5,r6,r7}
.text
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
push %ebp
.text
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
movem.l %d2-%d5,-(%sp)
.global __clone
+.hidden __clone
.type __clone,@function
# r5, r6, r7, r8, r9, r10, stack
.set noreorder
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
# Save function pointer and argument pointer on new thread stack
.set noreorder
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
# Save function pointer and argument pointer on new thread stack
.set noreorder
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
# Save function pointer and argument pointer on new thread stack
* sys_clone(flags, stack, ptid, ctid, tls)
*/
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
l.addi r4, r4, -8
.text
.global __clone
+.hidden __clone
.type __clone, %function
__clone:
# int clone(fn, stack, flags, arg, ptid, tls, ctid)
.text
.global __clone
+.hidden __clone
.type __clone, %function
__clone:
# int clone(fn, stack, flags, arg, ptid, tls, ctid)
.text
.global __clone
+.hidden __clone
.type __clone, %function
__clone:
# int clone(
.text
.global __clone
+.hidden __clone
.type __clone, @function
__clone:
! incoming: fn stack flags arg ptid tls ctid
.text
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
movl $0x40000038,%eax /* SYS_clone */
.text
.global __clone
+.hidden __clone
.type __clone,@function
__clone:
xor %eax,%eax