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

     1  .syntax unified
     2  .global __cp_begin
     3  .hidden __cp_begin
     4  .global __cp_end
     5  .hidden __cp_end
     6  .global __cp_cancel
     7  .hidden __cp_cancel
     8  .hidden __cancel
     9  .global __syscall_cp_asm
    10  .hidden __syscall_cp_asm
    11  .type __syscall_cp_asm,%function
    12  __syscall_cp_asm:
    13  	mov ip,sp
    14  	stmfd sp!,{r4,r5,r6,r7}
    15  __cp_begin:
    16  	ldr r0,[r0]
    17  	cmp r0,#0
    18  	bne __cp_cancel
    19  	mov r7,r1
    20  	mov r0,r2
    21  	mov r1,r3
    22  	ldmfd ip,{r2,r3,r4,r5,r6}
    23  	svc 0
    24  __cp_end:
    25  	ldmfd sp!,{r4,r5,r6,r7}
    26  	bx lr
    27  __cp_cancel:
    28  	ldmfd sp!,{r4,r5,r6,r7}
    29  	b __cancel