consistently use hidden visibility for cancellable syscall internals
[oweals/musl.git] / src / thread / mips / syscall_cp.s
1 .set    noreorder
2
3 .global __cp_begin
4 .hidden __cp_begin
5 .global __cp_end
6 .hidden __cp_end
7 .global __cp_cancel
8 .hidden __cp_cancel
9 .hidden __cancel
10 .global __syscall_cp_asm
11 .hidden __syscall_cp_asm
12 .type   __syscall_cp_asm,@function
13 __syscall_cp_asm:
14         subu    $sp, $sp, 32
15 __cp_begin:
16         lw      $4, 0($4)
17         bne     $4, $0, __cp_cancel
18         move    $2, $5
19         move    $4, $6
20         move    $5, $7
21         lw      $6, 48($sp)
22         lw      $7, 52($sp)
23         lw      $8, 56($sp)
24         lw      $9, 60($sp)
25         lw      $10,64($sp)
26         sw      $8, 16($sp)
27         sw      $9, 20($sp)
28         sw      $10,24($sp)
29         sw      $2, 28($sp)
30         lw      $2, 28($sp)
31         syscall
32 __cp_end:
33         beq     $7, $0, 1f
34         addu    $sp, $sp, 32
35         subu    $2, $0, $2
36 1:      jr      $ra
37         nop
38
39 __cp_cancel:
40         addu    $sp, $sp, 32
41         lw      $25, %call16(__cancel)($gp)
42         jr      $25
43         nop