From 8af1cbc508313d6df00230bee0206c0542325799 Mon Sep 17 00:00:00 2001 From: dhy308 Date: Tue, 31 Aug 2021 09:29:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8syscall=5Fcp=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0CFI=E6=8C=87=E4=BB=A4=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=9B=9E=E6=A0=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dhy308 new file: porting/linux/user/src/thread/arm/syscall_cp.s --- .../linux/user/src/thread/arm/syscall_cp.s | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 porting/linux/user/src/thread/arm/syscall_cp.s diff --git a/porting/linux/user/src/thread/arm/syscall_cp.s b/porting/linux/user/src/thread/arm/syscall_cp.s new file mode 100644 index 00000000..03a83dc9 --- /dev/null +++ b/porting/linux/user/src/thread/arm/syscall_cp.s @@ -0,0 +1,37 @@ +.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 +.type __syscall_cp_asm,%function +.cfi_startproc +__syscall_cp_asm: + mov ip,sp + stmfd sp!,{r4,r5,r6,r7} + .cfi_def_cfa_offset 16 + .cfi_rel_offset r4, 0 + .cfi_rel_offset r5, 4 + .cfi_rel_offset r6, 8 + .cfi_rel_offset r7, 12 +__cp_begin: + ldr r0,[r0] + cmp r0,#0 + bne __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} + .cfi_def_cfa_offset 0 + bx lr +__cp_cancel: + ldmfd sp!,{r4,r5,r6,r7} + .cfi_def_cfa_offset 0 + b __cancel +.cfi_endproc -- GitLab