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:
Vladimir 'phcoder' Serbinenko 2012-06-22 23:36:33 +02:00
parent d1718e7d2b
commit ed24c31201
3 changed files with 50 additions and 7 deletions

View file

@ -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

View file

@ -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

View file

@ -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