summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2020-11-13 23:20:32 -0800
committerGravatar bunnei2020-11-29 01:31:52 -0800
commit63fd1bb50302867b233325f253b1e2abbc379875 (patch)
tree65204a55cc87b2b4ef7260744ff96fabc813c9f6 /src/core/hle/kernel/kernel.cpp
parenthle: kernel: time_manager: Avoid a crash on process exit. (diff)
downloadyuzu-63fd1bb50302867b233325f253b1e2abbc379875.tar.gz
yuzu-63fd1bb50302867b233325f253b1e2abbc379875.tar.xz
yuzu-63fd1bb50302867b233325f253b1e2abbc379875.zip
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index c426b6378..929db696d 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -497,12 +497,17 @@ const Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() const {
497} 497}
498 498
499void KernelCore::InvalidateAllInstructionCaches() { 499void KernelCore::InvalidateAllInstructionCaches() {
500 if (!IsMulticore()) { 500 for (auto& physical_core : impl->cores) {
501 for (auto& physical_core : impl->cores) { 501 physical_core.ArmInterface().ClearInstructionCache();
502 physical_core.ArmInterface().ClearInstructionCache(); 502 }
503}
504
505void KernelCore::InvalidateCpuInstructionCacheRange(VAddr addr, std::size_t size) {
506 for (auto& physical_core : impl->cores) {
507 if (!physical_core.IsInitialized()) {
508 continue;
503 } 509 }
504 } else { 510 physical_core.ArmInterface().InvalidateCacheRange(addr, size);
505 UNIMPLEMENTED();
506 } 511 }
507} 512}
508 513