simplify cond var code now that cleanup handler is not needed
[musl] / src / thread / mips / syscall_cp.s
1 .set    noreorder
2
3 .global __syscall_cp_asm
4 .type   __syscall_cp_asm,@function
5 __syscall_cp_asm:
6         subu    $sp, $sp, 32
7 .global __cp_begin
8 __cp_begin:
9         lw      $4, 0($4)
10         bne     $4, $0, __cp_cancel
11         move    $2, $5
12         move    $4, $6
13         move    $5, $7
14         lw      $6, 48($sp)
15         lw      $7, 52($sp)
16         lw      $8, 56($sp)
17         lw      $9, 60($sp)
18         lw      $10,64($sp)
19         sw      $8, 16($sp)
20         sw      $9, 20($sp)
21         sw      $10,24($sp)
22         sw      $2, 28($sp)
23         lw      $2, 28($sp)
24         syscall
25 .global __cp_end
26 __cp_end:
27         beq     $7, $0, 1f
28         addu    $sp, $sp, 32
29         subu    $2, $0, $2
30 1:      jr      $ra
31         nop
32
33 .global __cp_cancel
34 __cp_cancel:
35         addu    $sp, $sp, 32
36         lw      $25, %call16(__cancel)($gp)
37         jr      $25
38         nop