syscall_cp.s raw

   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
  30