]> git.proxmox.com Git - grub2.git/commitdiff
Avoid flushing the same line multiple times on loongson.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 22 Jun 2012 21:36:33 +0000 (23:36 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 22 Jun 2012 21:36:33 +0000 (23:36 +0200)
* 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.

ChangeLog
grub-core/kern/mips/cache.S
grub-core/kern/mips/cache_flush.S

index e2d5e0f0c8b8771154f95bacd35879e1c6d46151..71ab669feaf704aea5f544a97f08dda266b51d63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+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
index a4aa06fb099c329f60b566804b5f41bf463d8ee7..141c030e97955ce62a78f3bd4b7c1ab3928bbd72 100644 (file)
@@ -21,25 +21,49 @@ FUNCTION (grub_arch_sync_dma_caches)
        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
index c03c337b584615b60d3157a5de68ccc9ea479d97..a5435cf51d55b789d1cb530acbd1c4d61fda4187 100644 (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