1570af302Sopenharmony_ci.set	noreorder
2570af302Sopenharmony_ci.global	__cp_begin
3570af302Sopenharmony_ci.hidden	__cp_begin
4570af302Sopenharmony_ci.type	__cp_begin,@function
5570af302Sopenharmony_ci.global	__cp_end
6570af302Sopenharmony_ci.hidden	__cp_end
7570af302Sopenharmony_ci.type	__cp_end,@function
8570af302Sopenharmony_ci.global	__cp_cancel
9570af302Sopenharmony_ci.hidden	__cp_cancel
10570af302Sopenharmony_ci.type	__cp_cancel,@function
11570af302Sopenharmony_ci.global	__cp_cancel_data
12570af302Sopenharmony_ci.hidden	__cp_cancel_data
13570af302Sopenharmony_ci.type	__cp_cancel_data,@function
14570af302Sopenharmony_ci.hidden	__cancel
15570af302Sopenharmony_ci.global	__syscall_cp_asm
16570af302Sopenharmony_ci.hidden	__syscall_cp_asm
17570af302Sopenharmony_ci.type	__syscall_cp_asm,@function
18570af302Sopenharmony_ci__syscall_cp_asm:
19570af302Sopenharmony_ci__cp_begin:
20570af302Sopenharmony_ci	lw	$4, 0($4)
21570af302Sopenharmony_ci	bne	$4, $0, __cp_cancel
22570af302Sopenharmony_ci	move	$2, $5
23570af302Sopenharmony_ci	move	$4, $6
24570af302Sopenharmony_ci	move	$5, $7
25570af302Sopenharmony_ci	move	$6, $8
26570af302Sopenharmony_ci	move	$7, $9
27570af302Sopenharmony_ci	move	$8, $10
28570af302Sopenharmony_ci	move	$9, $11
29570af302Sopenharmony_ci	ld	$10, 0($sp)
30570af302Sopenharmony_ci	syscall
31570af302Sopenharmony_ci__cp_end:
32570af302Sopenharmony_ci	beq	$7, $0, 1f
33570af302Sopenharmony_ci	nop
34570af302Sopenharmony_ci	dsubu	$2, $0, $2
35570af302Sopenharmony_ci1:	jr	$ra
36570af302Sopenharmony_ci	nop
37570af302Sopenharmony_ci
38570af302Sopenharmony_ci	# if cancellation flag is 1 then call __cancel
39570af302Sopenharmony_ci__cp_cancel:
40570af302Sopenharmony_ci	move	$2, $ra
41570af302Sopenharmony_ci.align 8
42570af302Sopenharmony_ci	bal	1f
43570af302Sopenharmony_ci	nop
44570af302Sopenharmony_ci__cp_cancel_data:
45570af302Sopenharmony_ci	.gpdword __cp_cancel_data
46570af302Sopenharmony_ci	.gpdword __cancel
47570af302Sopenharmony_ci1:	ld	$3, ($ra)
48570af302Sopenharmony_ci	dsubu	$3, $ra, $3
49570af302Sopenharmony_ci	ld	$25, 8($ra)
50570af302Sopenharmony_ci	daddu	$25, $25, $3
51570af302Sopenharmony_ci	jr	$25
52570af302Sopenharmony_ci	move	$ra, $2
53