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