* grub-core/kern/mips/cache.S [GRUB_MACHINE_MIPS_LOONGSON]:
Step in 32 bytes and not 1 byte.
* grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]:
Likewise.
+2012-06-22 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Avoid flushing the same line multiple times on loongson.
+
+ * grub-core/kern/mips/cache.S [GRUB_MACHINE_MIPS_LOONGSON]:
+ Step in 32 bytes and not 1 byte.
+ * grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]:
+ Likewise.
+
2012-06-22 Vladimir Serbinenko <phcoder@gmail.com>
* util/getroot.c (grub_find_root_devices_from_mountinfo): Handle btrfs
subu $t1, $t3, $t2
1:
cache 1, 0($t0)
- addiu $t1, $t1, 0xffff
+#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, -4
bne $t1, $zero, 1b
- addiu $t0, $t0, 0x1
+ addiu $t0, $t0, 0x4
+#endif
sync
move $t0, $t2
subu $t1, $t3, $t2
2:
+#ifdef GRUB_MACHINE_MIPS_LOONGSON
+ cache 0, 0($t0)
+ addiu $t1, $t1, -0x20
+ bne $t1, $zero, 2b
+ addiu $t0, $t0, 0x20
+#else
cache 0, 0($t0)
- addiu $t1, $t1, 0xffff
+ addiu $t1, $t1, -4
bne $t1, $zero, 2b
- addiu $t0, $t0, 0x1
+ addiu $t0, $t0, 0x4
+#endif
sync
move $t0, $t2
subu $t1, $t3, $t2
2:
+#ifdef GRUB_MACHINE_MIPS_LOONGSON
+ cache 23, 0($t0)
+ addiu $t1, $t1, -0x20
+ bne $t1, $zero, 2b
+ addiu $t0, $t0, 0x20
+#else
cache 23, 0($t0)
- addiu $t1, $t1, 0xffff
+ addiu $t1, $t1, -0x4
bne $t1, $zero, 2b
- addiu $t0, $t0, 0x1
+ addiu $t0, $t0, 0x4
+#endif
sync
jr $ra
\ No newline at end of file
cache 1, 1($t0)
cache 1, 2($t0)
cache 1, 3($t0)
-#endif
+ 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