arm_dynarmic_64: Invalidate on all cores
This commit is contained in:
parent
3a9a0d9cb3
commit
1383441b15
|
@ -93,17 +93,19 @@ public:
|
||||||
static constexpr u64 ICACHE_LINE_SIZE = 64;
|
static constexpr u64 ICACHE_LINE_SIZE = 64;
|
||||||
|
|
||||||
const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU:
|
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU:
|
||||||
parent.ClearInstructionCache();
|
parent.system.InvalidateCpuInstructionCaches();
|
||||||
break;
|
break;
|
||||||
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable:
|
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable:
|
||||||
default:
|
default:
|
||||||
LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op);
|
LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent.jit->HaltExecution();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override {
|
void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override {
|
||||||
|
|
Reference in New Issue