aboutsummaryrefslogtreecommitdiffstats
path: root/grub-core/kern/emu/cache.S
diff options
context:
space:
mode:
Diffstat (limited to 'grub-core/kern/emu/cache.S')
-rw-r--r--grub-core/kern/emu/cache.S28
1 files changed, 28 insertions, 0 deletions
diff --git a/grub-core/kern/emu/cache.S b/grub-core/kern/emu/cache.S
new file mode 100644
index 0000000..abd81c9
--- /dev/null
+++ b/grub-core/kern/emu/cache.S
@@ -0,0 +1,28 @@
+#ifndef GRUB_MACHINE_EMU
+#error "This source is only meant for grub-emu platform"
+#endif
+
+#if defined(__i386__) || defined(__x86_64__)
+/* Nothing is necessary. */
+#elif defined(__sparc__)
+#include "../sparc64/cache.S"
+#elif defined(__mips__)
+/* On MIPS we must go through standard functions. */
+#include <grub/symbol.h>
+
+FUNCTION (grub_cpu_flush_cache)
+FUNCTION (grub_arch_sync_caches)
+ .set nomacro
+ .set noreorder
+ lui $t0, %hi(_flush_cache)
+ addui $t0, $t0, %lo(_flush_cache)
+ move $a3, $zero
+ jr $t0
+ nop
+ .set reorder
+ .set macro
+#elif defined(__powerpc__)
+#include "../powerpc/cache.S"
+#else
+#error "No target cpu type is defined"
+#endif