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.ifdef __LITEOS__ 11.hidden __syscall_cp_asm 12.endif 13.type __syscall_cp_asm,%function 14.ifndef __LITEOS__ 15.cfi_startproc 16.endif 17__syscall_cp_asm: 18 mov ip,sp 19 stmfd sp!,{r4,r5,r6,r7} 20 .ifndef __LITEOS__ 21 .cfi_def_cfa_offset 16 22 .cfi_rel_offset r4, 0 23 .cfi_rel_offset r5, 4 24 .cfi_rel_offset r6, 8 25 .cfi_rel_offset r7, 12 26 .endif 27__cp_begin: 28 ldr r0,[r0] 29 cmp r0,#0 30 bne __cp_cancel 31 mov r7,r1 32 mov r0,r2 33 mov r1,r3 34 ldmfd ip,{r2,r3,r4,r5,r6} 35 svc 0 36__cp_end: 37 ldmfd sp!,{r4,r5,r6,r7} 38 .ifndef __LITEOS__ 39 .cfi_def_cfa_offset 0 40 .endif 41 bx lr 42__cp_cancel: 43 ldmfd sp!,{r4,r5,r6,r7} 44 .ifndef __LITEOS__ 45 .cfi_def_cfa_offset 0 46 .endif 47 b __cancel 48.ifndef __LITEOS__ 49.cfi_endproc 50.endif 51