diff options
| author | 2022-03-28 15:45:52 -0700 | |
|---|---|---|
| committer | 2022-03-28 15:45:52 -0700 | |
| commit | 642913b0d1e27e4a81ee454903a65b5ce5ddee72 (patch) | |
| tree | a77c2c60258ff98c475556fffe784074f4c93287 | |
| parent | Merge pull request #8095 from bylaws/master (diff) | |
| parent | arm_dynarmic_64: Invalidate on all cores (diff) | |
| download | yuzu-642913b0d1e27e4a81ee454903a65b5ce5ddee72.tar.gz yuzu-642913b0d1e27e4a81ee454903a65b5ce5ddee72.tar.xz yuzu-642913b0d1e27e4a81ee454903a65b5ce5ddee72.zip | |
Merge pull request #8098 from merryhime/ic-ivau
dynarmic: Invalidate CPU cache on all cores
Diffstat (limited to '')
| 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: | |||
| 93 | static constexpr u64 ICACHE_LINE_SIZE = 64; | 93 | static constexpr u64 ICACHE_LINE_SIZE = 64; |
| 94 | 94 | ||
| 95 | const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1); | 95 | const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1); |
| 96 | parent.InvalidateCacheRange(cache_line_start, ICACHE_LINE_SIZE); | 96 | parent.system.InvalidateCpuInstructionCacheRange(cache_line_start, ICACHE_LINE_SIZE); |
| 97 | break; | 97 | break; |
| 98 | } | 98 | } |
| 99 | case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU: | 99 | case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU: |
| 100 | parent.ClearInstructionCache(); | 100 | parent.system.InvalidateCpuInstructionCaches(); |
| 101 | break; | 101 | break; |
| 102 | case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable: | 102 | case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable: |
| 103 | default: | 103 | default: |
| 104 | LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op); | 104 | LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op); |
| 105 | break; | 105 | break; |
| 106 | } | 106 | } |
| 107 | |||
| 108 | parent.jit->HaltExecution(); | ||
| 107 | } | 109 | } |
| 108 | 110 | ||
| 109 | void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override { | 111 | void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override { |