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.
This commit is contained in:
parent
d1718e7d2b
commit
ed24c31201
3 changed files with 50 additions and 7 deletions
|
@ -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>
|
2012-06-22 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* util/getroot.c (grub_find_root_devices_from_mountinfo): Handle btrfs
|
* util/getroot.c (grub_find_root_devices_from_mountinfo): Handle btrfs
|
||||||
|
|
|
@ -21,25 +21,49 @@ FUNCTION (grub_arch_sync_dma_caches)
|
||||||
subu $t1, $t3, $t2
|
subu $t1, $t3, $t2
|
||||||
1:
|
1:
|
||||||
cache 1, 0($t0)
|
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
|
bne $t1, $zero, 1b
|
||||||
addiu $t0, $t0, 0x1
|
addiu $t0, $t0, 0x20
|
||||||
|
#else
|
||||||
|
addiu $t1, $t1, -4
|
||||||
|
bne $t1, $zero, 1b
|
||||||
|
addiu $t0, $t0, 0x4
|
||||||
|
#endif
|
||||||
sync
|
sync
|
||||||
move $t0, $t2
|
move $t0, $t2
|
||||||
subu $t1, $t3, $t2
|
subu $t1, $t3, $t2
|
||||||
2:
|
2:
|
||||||
|
#ifdef GRUB_MACHINE_MIPS_LOONGSON
|
||||||
cache 0, 0($t0)
|
cache 0, 0($t0)
|
||||||
addiu $t1, $t1, 0xffff
|
addiu $t1, $t1, -0x20
|
||||||
bne $t1, $zero, 2b
|
bne $t1, $zero, 2b
|
||||||
addiu $t0, $t0, 0x1
|
addiu $t0, $t0, 0x20
|
||||||
|
#else
|
||||||
|
cache 0, 0($t0)
|
||||||
|
addiu $t1, $t1, -4
|
||||||
|
bne $t1, $zero, 2b
|
||||||
|
addiu $t0, $t0, 0x4
|
||||||
|
#endif
|
||||||
sync
|
sync
|
||||||
move $t0, $t2
|
move $t0, $t2
|
||||||
subu $t1, $t3, $t2
|
subu $t1, $t3, $t2
|
||||||
2:
|
2:
|
||||||
|
#ifdef GRUB_MACHINE_MIPS_LOONGSON
|
||||||
cache 23, 0($t0)
|
cache 23, 0($t0)
|
||||||
addiu $t1, $t1, 0xffff
|
addiu $t1, $t1, -0x20
|
||||||
bne $t1, $zero, 2b
|
bne $t1, $zero, 2b
|
||||||
addiu $t0, $t0, 0x1
|
addiu $t0, $t0, 0x20
|
||||||
|
#else
|
||||||
|
cache 23, 0($t0)
|
||||||
|
addiu $t1, $t1, -0x4
|
||||||
|
bne $t1, $zero, 2b
|
||||||
|
addiu $t0, $t0, 0x4
|
||||||
|
#endif
|
||||||
sync
|
sync
|
||||||
|
|
||||||
jr $ra
|
jr $ra
|
|
@ -14,17 +14,27 @@
|
||||||
cache 1, 1($t0)
|
cache 1, 1($t0)
|
||||||
cache 1, 2($t0)
|
cache 1, 2($t0)
|
||||||
cache 1, 3($t0)
|
cache 1, 3($t0)
|
||||||
#endif
|
addiu $t1, $t1, -0x20
|
||||||
|
bne $t1, $zero, 1b
|
||||||
|
addiu $t0, $t0, 0x20
|
||||||
|
|
||||||
|
#else
|
||||||
addiu $t1, $t1, -0x4
|
addiu $t1, $t1, -0x4
|
||||||
bne $t1, $zero, 1b
|
bne $t1, $zero, 1b
|
||||||
addiu $t0, $t0, 0x4
|
addiu $t0, $t0, 0x4
|
||||||
|
#endif
|
||||||
sync
|
sync
|
||||||
move $t0, $t2
|
move $t0, $t2
|
||||||
subu $t1, $t3, $t2
|
subu $t1, $t3, $t2
|
||||||
2:
|
2:
|
||||||
cache 0, 0($t0)
|
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
|
addiu $t1, $t1, -0x4
|
||||||
bne $t1, $zero, 2b
|
bne $t1, $zero, 2b
|
||||||
addiu $t0, $t0, 0x4
|
addiu $t0, $t0, 0x4
|
||||||
|
#endif
|
||||||
sync
|
sync
|
||||||
|
|
Loading…
Reference in a new issue