xref: /aosp_15_r20/external/musl/src/thread/mips/syscall_cp.s (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker.set    noreorder
2*c9945492SAndroid Build Coastguard Worker
3*c9945492SAndroid Build Coastguard Worker.global __cp_begin
4*c9945492SAndroid Build Coastguard Worker.hidden __cp_begin
5*c9945492SAndroid Build Coastguard Worker.type   __cp_begin,@function
6*c9945492SAndroid Build Coastguard Worker.global __cp_end
7*c9945492SAndroid Build Coastguard Worker.hidden __cp_end
8*c9945492SAndroid Build Coastguard Worker.type   __cp_end,@function
9*c9945492SAndroid Build Coastguard Worker.global __cp_cancel
10*c9945492SAndroid Build Coastguard Worker.hidden __cp_cancel
11*c9945492SAndroid Build Coastguard Worker.type   __cp_cancel,@function
12*c9945492SAndroid Build Coastguard Worker.hidden __cancel
13*c9945492SAndroid Build Coastguard Worker.global __syscall_cp_asm
14*c9945492SAndroid Build Coastguard Worker.hidden __syscall_cp_asm
15*c9945492SAndroid Build Coastguard Worker.type   __syscall_cp_asm,@function
16*c9945492SAndroid Build Coastguard Worker__syscall_cp_asm:
17*c9945492SAndroid Build Coastguard Worker	subu    $sp, $sp, 32
18*c9945492SAndroid Build Coastguard Worker__cp_begin:
19*c9945492SAndroid Build Coastguard Worker	lw      $4, 0($4)
20*c9945492SAndroid Build Coastguard Worker	bne     $4, $0, __cp_cancel
21*c9945492SAndroid Build Coastguard Worker	move    $2, $5
22*c9945492SAndroid Build Coastguard Worker	move    $4, $6
23*c9945492SAndroid Build Coastguard Worker	move    $5, $7
24*c9945492SAndroid Build Coastguard Worker	lw      $6, 48($sp)
25*c9945492SAndroid Build Coastguard Worker	lw      $7, 52($sp)
26*c9945492SAndroid Build Coastguard Worker	lw      $8, 56($sp)
27*c9945492SAndroid Build Coastguard Worker	lw      $9, 60($sp)
28*c9945492SAndroid Build Coastguard Worker	lw      $10,64($sp)
29*c9945492SAndroid Build Coastguard Worker	sw      $8, 16($sp)
30*c9945492SAndroid Build Coastguard Worker	sw      $9, 20($sp)
31*c9945492SAndroid Build Coastguard Worker	sw      $10,24($sp)
32*c9945492SAndroid Build Coastguard Worker	sw      $2, 28($sp)
33*c9945492SAndroid Build Coastguard Worker	lw      $2, 28($sp)
34*c9945492SAndroid Build Coastguard Worker	syscall
35*c9945492SAndroid Build Coastguard Worker__cp_end:
36*c9945492SAndroid Build Coastguard Worker	beq     $7, $0, 1f
37*c9945492SAndroid Build Coastguard Worker	addu    $sp, $sp, 32
38*c9945492SAndroid Build Coastguard Worker	subu    $2, $0, $2
39*c9945492SAndroid Build Coastguard Worker1:	jr      $ra
40*c9945492SAndroid Build Coastguard Worker	nop
41*c9945492SAndroid Build Coastguard Worker
42*c9945492SAndroid Build Coastguard Worker__cp_cancel:
43*c9945492SAndroid Build Coastguard Worker	move    $2, $ra
44*c9945492SAndroid Build Coastguard Worker	bal     1f
45*c9945492SAndroid Build Coastguard Worker	addu    $sp, $sp, 32
46*c9945492SAndroid Build Coastguard Worker	.gpword .
47*c9945492SAndroid Build Coastguard Worker	.gpword __cancel
48*c9945492SAndroid Build Coastguard Worker1:	lw      $3, ($ra)
49*c9945492SAndroid Build Coastguard Worker	subu    $3, $ra, $3
50*c9945492SAndroid Build Coastguard Worker	lw      $25, 4($ra)
51*c9945492SAndroid Build Coastguard Worker	addu    $25, $25, $3
52*c9945492SAndroid Build Coastguard Worker	jr      $25
53*c9945492SAndroid Build Coastguard Worker	move    $ra, $2
54