github.com/afumu/libc@v0.0.6/musl/src/thread/aarch64/syscall_cp.s (about)

     1  // __syscall_cp_asm(&self->cancel, nr, u, v, w, x, y, z)
     2  //                  x0             x1  x2 x3 x4 x5 x6 x7
     3  
     4  // syscall(nr, u, v, w, x, y, z)
     5  //         x8  x0 x1 x2 x3 x4 x5
     6  
     7  .global __cp_begin
     8  .hidden __cp_begin
     9  .global __cp_end
    10  .hidden __cp_end
    11  .global __cp_cancel
    12  .hidden __cp_cancel
    13  .hidden __cancel
    14  .global __syscall_cp_asm
    15  .hidden __syscall_cp_asm
    16  .type __syscall_cp_asm,%function
    17  __syscall_cp_asm:
    18  __cp_begin:
    19  	ldr w0,[x0]
    20  	cbnz w0,__cp_cancel
    21  	mov x8,x1
    22  	mov x0,x2
    23  	mov x1,x3
    24  	mov x2,x4
    25  	mov x3,x5
    26  	mov x4,x6
    27  	mov x5,x7
    28  	svc 0
    29  __cp_end:
    30  	ret
    31  __cp_cancel:
    32  	b __cancel