From c8bf47dcfbd43f3e7835d2e45b4704e056d8e9ee Mon Sep 17 00:00:00 2001
From: Fernando Sahmkow <fsahmkow27@gmail.com>
Date: Tue, 31 Mar 2020 15:12:41 -0400
Subject: Kernel/svcBreak: Implement CacheInvalidation for Singlecore and
 correct svcBreak.

---
 src/core/hle/kernel/kernel.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

(limited to 'src/core/hle/kernel/kernel.cpp')

diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 739205eca3..1f230fc4a0 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -545,7 +545,17 @@ const Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() const {
 }
 
 void KernelCore::InvalidateAllInstructionCaches() {
-    //TODO: Reimplement, this
+    if (!IsMulticore()) {
+        auto& threads = GlobalScheduler().GetThreadList();
+        for (auto& thread : threads) {
+            if (!thread->IsHLEThread()) {
+                auto& arm_interface = thread->ArmInterface();
+                arm_interface.ClearInstructionCache();
+            }
+        }
+    } else {
+        UNIMPLEMENTED_MSG("Cache Invalidation unimplemented for multicore");
+    }
 }
 
 void KernelCore::PrepareReschedule(std::size_t id) {
-- 
cgit v1.2.3-70-g09d2