From 7bf56c2413a9fbe25c7b26b128a98694ea1b49f8 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:57:48 +0300 Subject: [PATCH] [CPU] Add function for clearing JIT cache --- include/cpu_dynarmic.hpp | 2 ++ include/kernel/kernel.hpp | 1 + src/core/kernel/kernel.cpp | 2 ++ 3 files changed, 5 insertions(+) diff --git a/include/cpu_dynarmic.hpp b/include/cpu_dynarmic.hpp index cb7e5627..7bed8704 100644 --- a/include/cpu_dynarmic.hpp +++ b/include/cpu_dynarmic.hpp @@ -170,6 +170,8 @@ public: return env.totalTicks; } + void clearCache() { jit->ClearCache(); } + void runFrame() { env.ticksLeft = ticksPerSec / 60; diff --git a/include/kernel/kernel.hpp b/include/kernel/kernel.hpp index 3d4b6917..b8976796 100644 --- a/include/kernel/kernel.hpp +++ b/include/kernel/kernel.hpp @@ -229,4 +229,5 @@ public: void sendGPUInterrupt(GPUInterrupt type) { serviceManager.sendGPUInterrupt(type); } void signalDSPEvents() { serviceManager.signalDSPEvents(); } + void clearInstructionCache(); }; \ No newline at end of file diff --git a/src/core/kernel/kernel.cpp b/src/core/kernel/kernel.cpp index 5eb3cddb..dfebfb6d 100644 --- a/src/core/kernel/kernel.cpp +++ b/src/core/kernel/kernel.cpp @@ -263,6 +263,8 @@ void Kernel::duplicateHandle() { } } +void Kernel::clearInstructionCache() { cpu.clearCache(); } + namespace SystemInfoType { enum : u32 { MemoryInformation = 0,