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

     1  .global __cp_begin
     2  .hidden __cp_begin
     3  .global __cp_end
     4  .hidden __cp_end
     5  .global __cp_cancel
     6  .hidden __cp_cancel
     7  .hidden __cancel
     8  .global __syscall_cp_asm
     9  .hidden __syscall_cp_asm
    10  .type __syscall_cp_asm, %function
    11  __syscall_cp_asm:
    12  __cp_begin:
    13  	lw t0, 0(a0)
    14  	bnez t0, __cp_cancel
    15  
    16  	mv t0, a1
    17  	mv a0, a2
    18  	mv a1, a3
    19  	mv a2, a4
    20  	mv a3, a5
    21  	mv a4, a6
    22  	mv a5, a7
    23  	ld a6, 0(sp)
    24  	mv a7, t0
    25  	ecall
    26  __cp_end:
    27  	ret
    28  __cp_cancel:
    29  	tail __cancel