29 lines
342 B
ArmAsm
29 lines
342 B
ArmAsm
.syntax unified
|
|
.text
|
|
.global __clone
|
|
.hidden __clone
|
|
.type __clone,%function
|
|
__clone:
|
|
stmfd sp!,{r4,r5,r6,r7}
|
|
mov r7,#120
|
|
mov r6,r3
|
|
mov r5,r0
|
|
mov r0,r2
|
|
and r1,r1,#-16
|
|
ldr r2,[sp,#16]
|
|
ldr r3,[sp,#20]
|
|
ldr r4,[sp,#24]
|
|
svc 0
|
|
tst r0,r0
|
|
beq 1f
|
|
ldmfd sp!,{r4,r5,r6,r7}
|
|
bx lr
|
|
|
|
1: mov r0,r6
|
|
bl 3f
|
|
2: mov r7,#1
|
|
svc 0
|
|
b 2b
|
|
|
|
3: bx r5
|