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 | bdb2835028a98beef287b000405b6eb16fb0db78 (patch) | |
| tree | d42024d6da32d202ed5927bf0e94d11887413c5a /src/core/hle/kernel/process.cpp | |
| parent | 59b8f91cb23e3d90960a4a093c439b51a6704e68 (diff) | |
process: LoadModule should clear JIT instruction cache.
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
| -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 073dd5a7d6..420218d59b 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) { |
