diff options
author | bunnei <bunneidev@gmail.com> | 2020-11-13 23:20:32 -0800 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2020-11-29 01:31:52 -0800 |
commit | 63fd1bb50302867b233325f253b1e2abbc379875 (patch) | |
tree | 65204a55cc87b2b4ef7260744ff96fabc813c9f6 /src/core/hle/kernel/kernel.cpp | |
parent | c0870315fd89dfeabdbe5833d52e753a5d8417ea (diff) |
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.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index c426b63786..929db696d3 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 { } void KernelCore::InvalidateAllInstructionCaches() { - if (!IsMulticore()) { - for (auto& physical_core : impl->cores) { - physical_core.ArmInterface().ClearInstructionCache(); + for (auto& physical_core : impl->cores) { + physical_core.ArmInterface().ClearInstructionCache(); + } +} + +void KernelCore::InvalidateCpuInstructionCacheRange(VAddr addr, std::size_t size) { + for (auto& physical_core : impl->cores) { + if (!physical_core.IsInitialized()) { + continue; } - } else { - UNIMPLEMENTED(); + physical_core.ArmInterface().InvalidateCacheRange(addr, size); } } |