.set noreorder .global __cp_begin .hidden __cp_begin .type __cp_begin,@function .global __cp_end .hidden __cp_end .type __cp_end,@function .global __cp_cancel .hidden __cp_cancel .type __cp_cancel,@function .hidden __cancel .global __syscall_cp_asm .hidden __syscall_cp_asm .type __syscall_cp_asm,@function __syscall_cp_asm: subu $sp, $sp, 32 __cp_begin: lw 4,ドル 0(4ドル) bne 4,ドル 0,ドル __cp_cancel move 2,ドル 5ドル move 4,ドル 6ドル move 5,ドル 7ドル lw 6,ドル 48($sp) lw 7,ドル 52($sp) lw 8,ドル 56($sp) lw 9,ドル 60($sp) lw 10,64ドル($sp) sw 8,ドル 16($sp) sw 9,ドル 20($sp) sw 10,24ドル($sp) sw 2,ドル 28($sp) lw 2,ドル 28($sp) syscall __cp_end: beq 7,ドル 0,ドル 1f addu $sp, $sp, 32 subu 2,ドル 0,ドル 2ドル 1: jr $ra nop __cp_cancel: move 2,ドル $ra bal 1f addu $sp, $sp, 32 .gpword . .gpword __cancel 1: lw 3,ドル ($ra) subu 3,ドル $ra, 3ドル lw 25,ドル 4($ra) addu 25,ドル 25,ドル 3ドル jr 25ドル move $ra, 2ドル