xref: /aosp_15_r20/external/musl/src/thread/arm/clone.s (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker.syntax unified
2*c9945492SAndroid Build Coastguard Worker.text
3*c9945492SAndroid Build Coastguard Worker.global __clone
4*c9945492SAndroid Build Coastguard Worker.hidden __clone
5*c9945492SAndroid Build Coastguard Worker.type   __clone,%function
6*c9945492SAndroid Build Coastguard Worker__clone:
7*c9945492SAndroid Build Coastguard Worker	stmfd sp!,{r4,r5,r6,r7}
8*c9945492SAndroid Build Coastguard Worker	mov r7,#120
9*c9945492SAndroid Build Coastguard Worker	mov r6,r3
10*c9945492SAndroid Build Coastguard Worker	mov r5,r0
11*c9945492SAndroid Build Coastguard Worker	mov r0,r2
12*c9945492SAndroid Build Coastguard Worker	and r1,r1,#-16
13*c9945492SAndroid Build Coastguard Worker	ldr r2,[sp,#16]
14*c9945492SAndroid Build Coastguard Worker	ldr r3,[sp,#20]
15*c9945492SAndroid Build Coastguard Worker	ldr r4,[sp,#24]
16*c9945492SAndroid Build Coastguard Worker	svc 0
17*c9945492SAndroid Build Coastguard Worker	tst r0,r0
18*c9945492SAndroid Build Coastguard Worker	beq 1f
19*c9945492SAndroid Build Coastguard Worker	ldmfd sp!,{r4,r5,r6,r7}
20*c9945492SAndroid Build Coastguard Worker	bx lr
21*c9945492SAndroid Build Coastguard Worker
22*c9945492SAndroid Build Coastguard Worker1:	mov r0,r6
23*c9945492SAndroid Build Coastguard Worker	bl 3f
24*c9945492SAndroid Build Coastguard Worker2:	mov r7,#1
25*c9945492SAndroid Build Coastguard Worker	svc 0
26*c9945492SAndroid Build Coastguard Worker	b 2b
27*c9945492SAndroid Build Coastguard Worker
28*c9945492SAndroid Build Coastguard Worker3:	bx r5
29