use explicit __cp_cancel label in cancellable syscall asm for all archs
[musl] / src / thread / x32 / syscall_cp.s
1 .text
2 .global __cp_begin
3 .hidden __cp_begin
4 .global __cp_end
5 .hidden __cp_end
6 .global __cp_cancel
7 .hidden __cp_cancel
8 .hidden __cancel
9 .global __syscall_cp_internal
10 .hidden __syscall_cp_internal
11 .type   __syscall_cp_internal,@function
12 __syscall_cp_internal:
13
14 __cp_begin:
15         mov (%rdi),%eax
16         test %eax,%eax
17         jnz __cp_cancel
18         mov %rdi,%r11
19         mov %rsi,%rax
20         mov %rdx,%rdi
21         mov %rcx,%rsi
22         mov %r8,%rdx
23         mov %r9,%r10
24         mov 8(%rsp),%r8
25         mov 16(%rsp),%r9
26         mov %r11,8(%rsp)
27         syscall
28 __cp_end:
29         ret
30 __cp_cancel:
31         jmp __cancel