syscall_cp.s raw
1 // __syscall_cp_asm(&self->cancel, nr, u, v, w, x, y, z)
2 // x0 x1 x2 x3 x4 x5 x6 x7
3
4 // syscall(nr, u, v, w, x, y, z)
5 // x8 x0 x1 x2 x3 x4 x5
6
7 .global __cp_begin
8 .hidden __cp_begin
9 .global __cp_end
10 .hidden __cp_end
11 .global __cp_cancel
12 .hidden __cp_cancel
13 .hidden __cancel
14 .global __syscall_cp_asm
15 .hidden __syscall_cp_asm
16 .type __syscall_cp_asm,%function
17 __syscall_cp_asm:
18 __cp_begin:
19 ldr w0,[x0]
20 cbnz w0,__cp_cancel
21 mov x8,x1
22 mov x0,x2
23 mov x1,x3
24 mov x2,x4
25 mov x3,x5
26 mov x4,x6
27 mov x5,x7
28 svc 0
29 __cp_end:
30 ret
31 __cp_cancel:
32 b __cancel
33