syscall_cp.s raw
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_asm
10 .hidden __syscall_cp_asm
11 .type __syscall_cp_asm,@function
12 __syscall_cp_asm:
13 movem.l %d2-%d5,-(%sp)
14 movea.l 20(%sp),%a0
15 __cp_begin:
16 move.l (%a0),%d0
17 bne __cp_cancel
18 movem.l 24(%sp),%d0-%d5/%a0
19 trap #0
20 __cp_end:
21 movem.l (%sp)+,%d2-%d5
22 rts
23 __cp_cancel:
24 movem.l (%sp)+,%d2-%d5
25 move.l __cancel-.-8,%a1
26 jmp (%pc,%a1)
27