move $t2, $a0 | |
addu $t3, $a0, $a1 | |
srl $t2, $t2, 5 | |
sll $t2, $t2, 5 | |
addu $t3, $t3, 0x1f | |
srl $t3, $t3, 5 | |
sll $t3, $t3, 5 | |
move $t0, $t2 | |
subu $t1, $t3, $t2 | |
1: | |
cache 1, 0($t0) | |
/* All four ways. */ | |
#ifdef GRUB_MACHINE_MIPS_LOONGSON | |
cache 1, 1($t0) | |
cache 1, 2($t0) | |
cache 1, 3($t0) | |
addiu $t1, $t1, -0x20 | |
bne $t1, $zero, 1b | |
addiu $t0, $t0, 0x20 | |
#else | |
addiu $t1, $t1, -0x4 | |
bne $t1, $zero, 1b | |
addiu $t0, $t0, 0x4 | |
#endif | |
sync | |
move $t0, $t2 | |
subu $t1, $t3, $t2 | |
2: | |
cache 0, 0($t0) | |
#ifdef GRUB_MACHINE_MIPS_LOONGSON | |
addiu $t1, $t1, -0x20 | |
bne $t1, $zero, 2b | |
addiu $t0, $t0, 0x20 | |
#else | |
addiu $t1, $t1, -0x4 | |
bne $t1, $zero, 2b | |
addiu $t0, $t0, 0x4 | |
#endif | |
sync |