forked from suyu/suyu
arm: dynarmic: Cleanup icache op handling
This commit is contained in:
parent
c8a67a725d
commit
4d9c9e567e
1 changed files with 9 additions and 10 deletions
|
@ -88,22 +88,21 @@ public:
|
||||||
|
|
||||||
void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op,
|
void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op,
|
||||||
VAddr value) override {
|
VAddr value) override {
|
||||||
constexpr u64 ICACHE_LINE_SIZE = 64;
|
|
||||||
u64 cache_line_start;
|
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case Dynarmic::A64::InstructionCacheOperation::InvalidateByVAToPoU:
|
case Dynarmic::A64::InstructionCacheOperation::InvalidateByVAToPoU: {
|
||||||
cache_line_start = value & ~(ICACHE_LINE_SIZE - 1);
|
static constexpr u64 ICACHE_LINE_SIZE = 64;
|
||||||
parent.InvalidateCacheRange(cache_line_start, ICACHE_LINE_SIZE);
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1);
|
||||||
|
parent.InvalidateCacheRange(cache_line_start, ICACHE_LINE_SIZE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU:
|
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU:
|
||||||
parent.ClearInstructionCache();
|
parent.ClearInstructionCache();
|
||||||
return;
|
break;
|
||||||
|
|
||||||
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable:
|
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable:
|
||||||
default:
|
default:
|
||||||
LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation");
|
LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue