.syntax unified .global __cp_begin .hidden __cp_begin .global __cp_end .hidden __cp_end .global __cp_cancel .hidden __cp_cancel .hidden __cancel .global __syscall_cp_asm .hidden __syscall_cp_asm .type __syscall_cp_asm,%function __syscall_cp_asm: mov ip,sp stmfd sp!,{r4,r5,r6,r7,lr} __cp_begin: ldr r0,[r0] cmp r0,#0 blne __cp_cancel mov r7,r1 mov r0,r2 mov r1,r3 ldmfd ip,{r2,r3,r4,r5,r6} svc 0 __cp_end: ldmfd sp!,{r4,r5,r6,r7,lr} bx lr __cp_cancel: ldmfd sp!,{r4,r5,r6,r7,lr} b __cancel