osInvalDCache.s (1240B)
1 .set noat // allow manual use of $at 2 .set noreorder // don't insert nops after branches 3 4 #include "macros.inc" 5 6 7 .section .text, "ax" 8 9 glabel osInvalDCache 10 blez $a1, .L80323500 11 nop 12 li $t3, 8192 13 sltu $at, $a1, $t3 14 beqz $at, .L80323508 15 nop 16 move $t0, $a0 17 addu $t1, $a0, $a1 18 sltu $at, $t0, $t1 19 beqz $at, .L80323500 20 nop 21 #ifdef VERSION_CN 22 addiu $t1, $t1, -0x10 23 andi $t2, $t0, 0xf 24 beqz $t2, .L803234D0 25 nop 26 #else 27 andi $t2, $t0, 0xf 28 beqz $t2, .L803234D0 29 addiu $t1, $t1, -0x10 30 #endif 31 subu $t0, $t0, $t2 32 cache 0x15, ($t0) 33 sltu $at, $t0, $t1 34 beqz $at, .L80323500 35 nop 36 addiu $t0, $t0, 0x10 37 .L803234D0: 38 andi $t2, $t1, 0xf 39 beqz $t2, .L803234F0 40 nop 41 subu $t1, $t1, $t2 42 cache 0x15, 0x10($t1) 43 sltu $at, $t1, $t0 44 bnez $at, .L80323500 45 nop 46 .L803234F0: 47 cache 0x11, ($t0) 48 sltu $at, $t0, $t1 49 bnez $at, .L803234F0 50 addiu $t0, $t0, 0x10 51 .L80323500: 52 jr $ra 53 nop 54 55 .L80323508: 56 li $t0, K0BASE 57 addu $t1, $t0, $t3 58 addiu $t1, $t1, -0x10 59 .L80323514: 60 cache 1, ($t0) 61 sltu $at, $t0, $t1 62 bnez $at, .L80323514 63 addiu $t0, $t0, 0x10 64 jr $ra 65 nop