summaryrefslogtreecommitdiff
path: root/src/thread/loongarch64/syscall_cp.s
diff options
context:
space:
mode:
authorHongliang Wang <wanghongliang@loongson.cn>2023-09-26 09:12:01 +0800
committerRich Felker <dalias@aerifal.cx>2024-02-16 09:33:10 -0500
commit522bd54edaa2fa404fd428f8ad0bcb0f0bec5639 (patch)
treedfe88361bcbbd17ac53b8af36cb52337f21095e9 /src/thread/loongarch64/syscall_cp.s
parent4a16ddf53e7c634169d0a649782f8a724611f263 (diff)
downloadmusl-522bd54edaa2fa404fd428f8ad0bcb0f0bec5639.tar.gz
add loongarch64 port
Author: Xiaojuan Zhai <zhaixiaojuan@loongson.cn> Author: Meidan Li <limeidan@loongson.cn> Author: Guoqi Chen <chenguoqi@loongson.cn> Author: Xiaolin Zhao <zhaoxiaolin@loongson.cn> Author: Fan peng <fanpeng@loongson.cn> Author: Jiantao Shan <shanjiantao@loongson.cn> Author: Xuhui Qiang <qiangxuhui@loongson.cn> Author: Jingyun Hua <huajingyun@loongson.cn> Author: Liu xue <liuxue@loongson.cn> Author: Hongliang Wang <wanghongliang@loongson.cn>
Diffstat (limited to 'src/thread/loongarch64/syscall_cp.s')
-rw-r--r--src/thread/loongarch64/syscall_cp.s29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/thread/loongarch64/syscall_cp.s b/src/thread/loongarch64/syscall_cp.s
new file mode 100644
index 00000000..c057a97b
--- /dev/null
+++ b/src/thread/loongarch64/syscall_cp.s
@@ -0,0 +1,29 @@
+.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:
+__cp_begin:
+ ld.w $a0, $a0, 0
+ bnez $a0, __cp_cancel
+ move $t8, $a1 # reserve system call number
+ move $a0, $a2
+ move $a1, $a3
+ move $a2, $a4
+ move $a3, $a5
+ move $a4, $a6
+ move $a5, $a7
+ move $a7, $t8
+ syscall 0
+__cp_end:
+ jr $ra
+__cp_cancel:
+ la.local $t8, __cancel
+ jr $t8