1*c9945492SAndroid Build Coastguard Worker// __clone(func, stack, flags, arg, ptid, tls, ctid) 2*c9945492SAndroid Build Coastguard Worker// x0, x1, w2, x3, x4, x5, x6 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker// syscall(SYS_clone, flags, stack, ptid, tls, ctid) 5*c9945492SAndroid Build Coastguard Worker// x8, x0, x1, x2, x3, x4 6*c9945492SAndroid Build Coastguard Worker 7*c9945492SAndroid Build Coastguard Worker.global __clone 8*c9945492SAndroid Build Coastguard Worker.hidden __clone 9*c9945492SAndroid Build Coastguard Worker.type __clone,%function 10*c9945492SAndroid Build Coastguard Worker__clone: 11*c9945492SAndroid Build Coastguard Worker // align stack and save func,arg 12*c9945492SAndroid Build Coastguard Worker and x1,x1,#-16 13*c9945492SAndroid Build Coastguard Worker stp x0,x3,[x1,#-16]! 14*c9945492SAndroid Build Coastguard Worker 15*c9945492SAndroid Build Coastguard Worker // syscall 16*c9945492SAndroid Build Coastguard Worker uxtw x0,w2 17*c9945492SAndroid Build Coastguard Worker mov x2,x4 18*c9945492SAndroid Build Coastguard Worker mov x3,x5 19*c9945492SAndroid Build Coastguard Worker mov x4,x6 20*c9945492SAndroid Build Coastguard Worker mov x8,#220 // SYS_clone 21*c9945492SAndroid Build Coastguard Worker svc #0 22*c9945492SAndroid Build Coastguard Worker 23*c9945492SAndroid Build Coastguard Worker cbz x0,1f 24*c9945492SAndroid Build Coastguard Worker // parent 25*c9945492SAndroid Build Coastguard Worker ret 26*c9945492SAndroid Build Coastguard Worker // child 27*c9945492SAndroid Build Coastguard Worker1: ldp x1,x0,[sp],#16 28*c9945492SAndroid Build Coastguard Worker blr x1 29*c9945492SAndroid Build Coastguard Worker mov x8,#93 // SYS_exit 30*c9945492SAndroid Build Coastguard Worker svc #0 31