musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--src/thread/mips/syscall_cp.s 15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/thread/mips/syscall_cp.s b/src/thread/mips/syscall_cp.s
index 8f76d40e..b01a5704 100644
--- a/src/thread/mips/syscall_cp.s
+++ b/src/thread/mips/syscall_cp.s
@@ -9,6 +9,9 @@
.global __cp_cancel
.hidden __cp_cancel
.type __cp_cancel,@function
+.global __cp_cancel_data
+.hidden __cp_cancel_data
+.type __cp_cancel_data,@function
.hidden __cancel
.global __syscall_cp_asm
.hidden __syscall_cp_asm
@@ -40,7 +43,15 @@ __cp_end:
nop
__cp_cancel:
+ move 2,ドル $ra
+ bal 1f
addu $sp, $sp, 32
- lw 25,ドル %call16(__cancel)($gp)
+__cp_cancel_data:
+ .gpword __cp_cancel_data
+ .gpword __cancel
+1: lw 3,ドル ($ra)
+ subu 3,ドル $ra, 3ドル
+ lw 25,ドル 4($ra)
+ addu 25,ドル 25,ドル 3ドル
jr 25ドル
- nop
+ move $ra, 2ドル
generated by cgit v1.2.1 (git 2.18.0) at 2025年10月05日 07:58:19 +0000

AltStyle によって変換されたページ (->オリジナル) /