1.set noreorder 2 3.global __cp_begin 4.hidden __cp_begin 5.type __cp_begin,@function 6.global __cp_end 7.hidden __cp_end 8.type __cp_end,@function 9.global __cp_cancel 10.hidden __cp_cancel 11.type __cp_cancel,@function 12.hidden __cancel 13.global __syscall_cp_asm 14.hidden __syscall_cp_asm 15.type __syscall_cp_asm,@function 16__syscall_cp_asm: 17 subu $sp, $sp, 32 18__cp_begin: 19 lw $4, 0($4) 20 bne $4, $0, __cp_cancel 21 move $2, $5 22 move $4, $6 23 move $5, $7 24 lw $6, 48($sp) 25 lw $7, 52($sp) 26 lw $8, 56($sp) 27 lw $9, 60($sp) 28 lw $10,64($sp) 29 sw $8, 16($sp) 30 sw $9, 20($sp) 31 sw $10,24($sp) 32 sw $2, 28($sp) 33 lw $2, 28($sp) 34 syscall 35__cp_end: 36 beq $7, $0, 1f 37 addu $sp, $sp, 32 38 subu $2, $0, $2 391: jr $ra 40 nop 41 42__cp_cancel: 43 move $2, $ra 44 bal 1f 45 addu $sp, $sp, 32 46 .gpword . 47 .gpword __cancel 481: lw $3, ($ra) 49 subu $3, $ra, $3 50 lw $25, 4($ra) 51 addu $25, $25, $3 52 jr $25 53 move $ra, $2 54