xref: /aosp_15_r20/external/musl/src/thread/x32/clone.s (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker.text
2*c9945492SAndroid Build Coastguard Worker.global __clone
3*c9945492SAndroid Build Coastguard Worker.hidden __clone
4*c9945492SAndroid Build Coastguard Worker.type   __clone,@function
5*c9945492SAndroid Build Coastguard Worker__clone:
6*c9945492SAndroid Build Coastguard Worker	movl $0x40000038,%eax /* SYS_clone */
7*c9945492SAndroid Build Coastguard Worker	mov %rdi,%r11
8*c9945492SAndroid Build Coastguard Worker	mov %rdx,%rdi
9*c9945492SAndroid Build Coastguard Worker	mov %r8,%rdx
10*c9945492SAndroid Build Coastguard Worker	mov %r9,%r8
11*c9945492SAndroid Build Coastguard Worker	mov 8(%rsp),%r10
12*c9945492SAndroid Build Coastguard Worker	mov %r11,%r9
13*c9945492SAndroid Build Coastguard Worker	and $-16,%rsi
14*c9945492SAndroid Build Coastguard Worker	sub $8,%rsi
15*c9945492SAndroid Build Coastguard Worker	mov %rcx,(%rsi)
16*c9945492SAndroid Build Coastguard Worker	syscall
17*c9945492SAndroid Build Coastguard Worker	test %eax,%eax
18*c9945492SAndroid Build Coastguard Worker	jnz 1f
19*c9945492SAndroid Build Coastguard Worker	xor %ebp,%ebp
20*c9945492SAndroid Build Coastguard Worker	pop %rdi
21*c9945492SAndroid Build Coastguard Worker	call *%r9
22*c9945492SAndroid Build Coastguard Worker	mov %eax,%edi
23*c9945492SAndroid Build Coastguard Worker	movl $0x4000003c,%eax /* SYS_exit */
24*c9945492SAndroid Build Coastguard Worker	syscall
25*c9945492SAndroid Build Coastguard Worker	hlt
26*c9945492SAndroid Build Coastguard Worker1:	ret
27