• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.set	noreorder
2.global	__cp_begin
3.hidden	__cp_begin
4.type	__cp_begin,@function
5.global	__cp_end
6.hidden	__cp_end
7.type	__cp_end,@function
8.global	__cp_cancel
9.hidden	__cp_cancel
10.type	__cp_cancel,@function
11.global	__cp_cancel_data
12.hidden	__cp_cancel_data
13.type	__cp_cancel_data,@function
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	lw	$4, 0($4)
21	bne	$4, $0, __cp_cancel
22	move	$2, $5
23	move	$4, $6
24	move	$5, $7
25	move	$6, $8
26	move	$7, $9
27	move	$8, $10
28	move	$9, $11
29	ld	$10, 0($sp)
30	syscall
31__cp_end:
32	beq	$7, $0, 1f
33	nop
34	dsubu	$2, $0, $2
351:	jr	$ra
36	nop
37
38	# if cancellation flag is 1 then call __cancel
39__cp_cancel:
40	move	$2, $ra
41.align 8
42	bal	1f
43	nop
44__cp_cancel_data:
45	.gpdword __cp_cancel_data
46	.gpdword __cancel
471:	ld	$3, ($ra)
48	dsubu	$3, $ra, $3
49	ld	$25, 8($ra)
50	daddu	$25, $25, $3
51	jr	$25
52	move	$ra, $2
53