X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fmips%2Fsyscall_cp.s;h=399289e3134b83125a75809a712802d8a3938d69;hb=9c738dc183f44de40d263e4ff8dc540915a41aed;hp=b6f30ee8849f60007354d99b574e0ca250f4344b;hpb=881868382a54b851b37d0b0f5f2d44f77af998a7;p=musl diff --git a/src/thread/mips/syscall_cp.s b/src/thread/mips/syscall_cp.s index b6f30ee8..399289e3 100644 --- a/src/thread/mips/syscall_cp.s +++ b/src/thread/mips/syscall_cp.s @@ -1,34 +1,43 @@ .set noreorder +.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: -.global __cp_begin + subu $sp, $sp, 32 __cp_begin: lw $4, 0($4) - bne $4, $0, 2f + bne $4, $0, __cp_cancel move $2, $5 move $4, $6 move $5, $7 - lw $6, 16($sp) - lw $7, 20($sp) - lw $8, 24($sp) - lw $9, 28($sp) - lw $10,32($sp) - subu $sp, $sp, 32 + lw $6, 48($sp) + lw $7, 52($sp) + lw $8, 56($sp) + lw $9, 60($sp) + lw $10,64($sp) sw $8, 16($sp) sw $9, 20($sp) sw $10,24($sp) sw $2, 28($sp) lw $2, 28($sp) syscall -.global __cp_end __cp_end: beq $7, $0, 1f addu $sp, $sp, 32 subu $2, $0, $2 1: jr $ra nop -2: lw $25, %call16(__cancel)($gp) + +__cp_cancel: + addu $sp, $sp, 32 + lw $25, %call16(__cancel)($gp) jr $25 nop