diff options
| author | 2018-12-05 22:36:44 -0500 | |
|---|---|---|
| committer | 2018-12-05 22:36:44 -0500 | |
| commit | cca4665a69a2dffeadf6eee1f80723f05b51a933 (patch) | |
| tree | 5deda969f4b903148170707bc2ade8d5e7b6179d /src/core | |
| parent | Merge pull request #1870 from heapo/pagetable_shrink_to_fit (diff) | |
| parent | service/ldr: Deduplicate instruction cache clearing code in LoadNro() (diff) | |
| download | yuzu-cca4665a69a2dffeadf6eee1f80723f05b51a933.tar.gz yuzu-cca4665a69a2dffeadf6eee1f80723f05b51a933.tar.xz yuzu-cca4665a69a2dffeadf6eee1f80723f05b51a933.zip | |
Merge pull request #1866 from lioncash/cache
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/ldr/ldr.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp index ca119dd3a..453d90a22 100644 --- a/src/core/hle/service/ldr/ldr.cpp +++ b/src/core/hle/service/ldr/ldr.cpp | |||
| @@ -335,10 +335,7 @@ public: | |||
| 335 | vm_manager.ReprotectRange(*map_address + header.rw_offset, header.rw_size, | 335 | vm_manager.ReprotectRange(*map_address + header.rw_offset, header.rw_size, |
| 336 | Kernel::VMAPermission::ReadWrite); | 336 | Kernel::VMAPermission::ReadWrite); |
| 337 | 337 | ||
| 338 | Core::System::GetInstance().ArmInterface(0).ClearInstructionCache(); | 338 | Core::System::GetInstance().InvalidateCpuInstructionCaches(); |
| 339 | Core::System::GetInstance().ArmInterface(1).ClearInstructionCache(); | ||
| 340 | Core::System::GetInstance().ArmInterface(2).ClearInstructionCache(); | ||
| 341 | Core::System::GetInstance().ArmInterface(3).ClearInstructionCache(); | ||
| 342 | 339 | ||
| 343 | nro.insert_or_assign(*map_address, NROInfo{hash, nro_size + bss_size}); | 340 | nro.insert_or_assign(*map_address, NROInfo{hash, nro_size + bss_size}); |
| 344 | 341 | ||
| @@ -391,10 +388,7 @@ public: | |||
| 391 | Kernel::MemoryState::ModuleCodeStatic) == RESULT_SUCCESS); | 388 | Kernel::MemoryState::ModuleCodeStatic) == RESULT_SUCCESS); |
| 392 | ASSERT(process->UnmapMemory(mapped_addr, 0, nro_size) == RESULT_SUCCESS); | 389 | ASSERT(process->UnmapMemory(mapped_addr, 0, nro_size) == RESULT_SUCCESS); |
| 393 | 390 | ||
| 394 | Core::System::GetInstance().ArmInterface(0).ClearInstructionCache(); | 391 | Core::System::GetInstance().InvalidateCpuInstructionCaches(); |
| 395 | Core::System::GetInstance().ArmInterface(1).ClearInstructionCache(); | ||
| 396 | Core::System::GetInstance().ArmInterface(2).ClearInstructionCache(); | ||
| 397 | Core::System::GetInstance().ArmInterface(3).ClearInstructionCache(); | ||
| 398 | 392 | ||
| 399 | nro.erase(iter); | 393 | nro.erase(iter); |
| 400 | IPC::ResponseBuilder rb{ctx, 2}; | 394 | IPC::ResponseBuilder rb{ctx, 2}; |