diff options
author | bunnei <bunneidev@gmail.com> | 2022-03-28 15:45:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-28 15:45:52 -0700 |
commit | 642913b0d1e27e4a81ee454903a65b5ce5ddee72 (patch) | |
tree | a77c2c60258ff98c475556fffe784074f4c93287 | |
parent | 7382e7a5c811ec8ed4270818dcfe8bba357973b2 (diff) | |
parent | 1383441b1520f3fca5dc5868240ee21a5308d2cf (diff) |
Merge pull request #8098 from merryhime/ic-ivau
dynarmic: Invalidate CPU cache on all cores
m--------- | externals/dynarmic | 0 | ||||
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_64.cpp | 6 |
2 files changed, 4 insertions, 2 deletions
diff --git a/externals/dynarmic b/externals/dynarmic -Subproject e1a266b9299be81cc0318c7e25b00388c342704 +Subproject af2d50288fc537201014c4230bb55ab9018a743 diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index d96226c41..24107f9f6 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -93,17 +93,19 @@ public: static constexpr u64 ICACHE_LINE_SIZE = 64; const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1); - parent.InvalidateCacheRange(cache_line_start, ICACHE_LINE_SIZE); + parent.system.InvalidateCpuInstructionCacheRange(cache_line_start, ICACHE_LINE_SIZE); break; } case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU: - parent.ClearInstructionCache(); + parent.system.InvalidateCpuInstructionCaches(); break; case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable: default: LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op); break; } + + parent.jit->HaltExecution(); } void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override { |