master
1// __syscall_cp_asm(&self->cancel, nr, u, v, w, x, y, z)
2// r0 r1 r2 r3 r4 r5 stack stack
3
4// syscall(nr, u, v, w, x, y, z)
5// r6 r0 r1 r2 r3 r4 r5
6
7.text
8.global __cp_begin
9.hidden __cp_begin
10.global __cp_end
11.hidden __cp_end
12.global __cp_cancel
13.hidden __cp_cancel
14.hidden __cancel
15.global __syscall_cp_asm
16.hidden __syscall_cp_asm
17.type __syscall_cp_asm,%function
18__syscall_cp_asm:
19__cp_begin:
20 r0 = memw(r0+#0)
21 {
22 p0 = cmp.eq(r0, #0); if (!p0.new) jump:nt __cancel
23 }
24 { r6 = r1
25 r1:0 = combine(r3, r2)
26 r3:2 = combine(r5, r4) }
27 { r4 = memw(r29+#0)
28 r5 = memw(r29+#4) }
29 trap0(#1)
30__cp_end:
31 jumpr r31
32.size __syscall_cp_asm, .-__syscall_cp_asm
33__cp_cancel:
34 jump __cancel
35.size __cp_cancel, .-__cp_cancel