diff options
author | bunnei <bunneidev@gmail.com> | 2018-10-23 18:42:15 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-10-25 18:03:54 -0400 |
commit | c2049aa4e5e7a77b0f1988e7082921b2e5083fa6 (patch) | |
tree | d42024d6da32d202ed5927bf0e94d11887413c5a | |
parent | a609b6907a67e927d1dd0ade0135c004c9507fad (diff) |
process: LoadModule should clear JIT instruction cache.
-rw-r--r-- | src/core/hle/kernel/process.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 073dd5a7d..420218d59 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -232,6 +232,12 @@ void Process::LoadModule(CodeSet module_, VAddr base_addr) { MapSegment(module_.CodeSegment(), VMAPermission::ReadExecute, MemoryState::CodeStatic); MapSegment(module_.RODataSegment(), VMAPermission::Read, MemoryState::CodeMutable); MapSegment(module_.DataSegment(), VMAPermission::ReadWrite, MemoryState::CodeMutable); + + // Clear instruction cache in CPU JIT + Core::System::GetInstance().ArmInterface(0).ClearInstructionCache(); + Core::System::GetInstance().ArmInterface(1).ClearInstructionCache(); + Core::System::GetInstance().ArmInterface(2).ClearInstructionCache(); + Core::System::GetInstance().ArmInterface(3).ClearInstructionCache(); } ResultVal<VAddr> Process::HeapAllocate(VAddr target, u64 size, VMAPermission perms) { |