Upgraded GRUB2 to 2.00 release.
[AROS.git] / arch / all-pc / boot / grub2-aros / grub-core / kern / mips / cache.S
blob141c030e97955ce62a78f3bd4b7c1ab3928bbd72
2 #include <grub/symbol.h>
4         .set noreorder
5         .set nomacro
7 FUNCTION (grub_cpu_flush_cache)
8 FUNCTION (grub_arch_sync_caches)
9 #include "cache_flush.S"
10         j $ra
12 FUNCTION (grub_arch_sync_dma_caches)
13         move $t2, $a0
14         addu $t3, $a0, $a1
15         srl $t2, $t2, 5
16         sll $t2, $t2, 5
17         addu $t3, $t3, 0x1f
18         srl $t3, $t3, 5
19         sll $t3, $t3, 5
20         move $t0, $t2
21         subu $t1, $t3, $t2
23         cache 1, 0($t0)
24 #ifdef GRUB_MACHINE_MIPS_LOONGSON
25         cache 1, 1($t0)
26         cache 1, 2($t0)
27         cache 1, 3($t0)
29         addiu $t1, $t1, -0x20
30         bne $t1, $zero, 1b
31          addiu $t0, $t0, 0x20
32 #else
33         addiu $t1, $t1, -4
34         bne $t1, $zero, 1b
35          addiu $t0, $t0, 0x4
36 #endif
37         sync
38         move $t0, $t2
39         subu $t1, $t3, $t2
41 #ifdef GRUB_MACHINE_MIPS_LOONGSON
42         cache 0, 0($t0)
43         addiu $t1, $t1, -0x20
44         bne $t1, $zero, 2b
45          addiu $t0, $t0, 0x20
46 #else
47         cache 0, 0($t0)
48         addiu $t1, $t1, -4
49         bne $t1, $zero, 2b
50          addiu $t0, $t0, 0x4
51 #endif
52         sync
53         move $t0, $t2
54         subu $t1, $t3, $t2
56 #ifdef GRUB_MACHINE_MIPS_LOONGSON
57         cache 23, 0($t0)
58         addiu $t1, $t1, -0x20
59         bne $t1, $zero, 2b
60          addiu $t0, $t0, 0x20
61 #else
62         cache 23, 0($t0)
63         addiu $t1, $t1, -0x4
64         bne $t1, $zero, 2b
65          addiu $t0, $t0, 0x4
66 #endif
67         sync
69         jr $ra