From 6e7a315eb67cb6c113cf37e1d66c4f11a51a2b3e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:29:51 +0200 Subject: Adding upstream version 2.06. Signed-off-by: Daniel Baumann --- grub-core/kern/mips/cache_flush.S | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 grub-core/kern/mips/cache_flush.S (limited to 'grub-core/kern/mips/cache_flush.S') diff --git a/grub-core/kern/mips/cache_flush.S b/grub-core/kern/mips/cache_flush.S new file mode 100644 index 0000000..89961a0 --- /dev/null +++ b/grub-core/kern/mips/cache_flush.S @@ -0,0 +1,54 @@ +#ifndef CACHE_OP_DEFINED +#define CACHE_OP_DEFINED 1 + .macro cache_op op addr + .set mips3 + cache \op, \addr + .set mips1 + .endm + .macro sync_op + .set mips3 + sync + .set mips1 + .endm +#endif + + 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_op 1, 0($t0) + /* All four ways. */ +#ifdef GRUB_MACHINE_MIPS_LOONGSON + cache_op 1, 1($t0) + cache_op 1, 2($t0) + cache_op 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_op + move $t0, $t2 + subu $t1, $t3, $t2 +2: + cache_op 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_op -- cgit v1.2.3