diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-08-29 07:21:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-29 07:21:24 +0200 |
commit | 474586bc53eb6fda40fb0db23ea1d50d32af28b6 (patch) | |
tree | 49df9979f3351f3eac26d8a74e25c5181ba35e6c /src/core/arm | |
parent | Merge pull request #1987 from Lectem/ipcdescriptors (diff) | |
parent | LDR: Implement CRO (diff) | |
download | yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar.gz yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar.bz2 yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar.lz yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar.xz yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.tar.zst yuzu-474586bc53eb6fda40fb0db23ea1d50d32af28b6.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/arm/arm_interface.h | 3 | ||||
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom.cpp | 6 | ||||
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom.h | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index d8abe5aeb..de5e9c8fa 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h @@ -32,6 +32,9 @@ public: Run(1); } + /// Clear all instruction cache + virtual void ClearInstructionCache() = 0; + /** * Set the Program Counter to an address * @param addr Address to set PC to diff --git a/src/core/arm/dyncom/arm_dyncom.cpp b/src/core/arm/dyncom/arm_dyncom.cpp index 13492a08b..ab77da965 100644 --- a/src/core/arm/dyncom/arm_dyncom.cpp +++ b/src/core/arm/dyncom/arm_dyncom.cpp @@ -12,6 +12,7 @@ #include "core/arm/dyncom/arm_dyncom.h" #include "core/arm/dyncom/arm_dyncom_interpreter.h" #include "core/arm/dyncom/arm_dyncom_run.h" +#include "core/arm/dyncom/arm_dyncom_trans.h" #include "core/core.h" #include "core/core_timing.h" @@ -23,6 +24,11 @@ ARM_DynCom::ARM_DynCom(PrivilegeMode initial_mode) { ARM_DynCom::~ARM_DynCom() { } +void ARM_DynCom::ClearInstructionCache() { + state->instruction_cache.clear(); + trans_cache_buf_top = 0; +} + void ARM_DynCom::SetPC(u32 pc) { state->Reg[15] = pc; } diff --git a/src/core/arm/dyncom/arm_dyncom.h b/src/core/arm/dyncom/arm_dyncom.h index 3664fd728..e763abc24 100644 --- a/src/core/arm/dyncom/arm_dyncom.h +++ b/src/core/arm/dyncom/arm_dyncom.h @@ -21,6 +21,8 @@ public: ARM_DynCom(PrivilegeMode initial_mode); ~ARM_DynCom(); + void ClearInstructionCache() override; + void SetPC(u32 pc) override; u32 GetPC() const override; u32 GetReg(int index) const override; |