summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dynarmic/arm_dynarmic.h
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2017-09-24 23:44:13 +0200
committerMerryMage <MerryMage@users.noreply.github.com>2017-09-25 00:08:25 +0200
commit67a70bd9e1655dfd705550c1d561f3ba444360c8 (patch)
tree18f0720a18d9d878a7699c755bf167af8564b776 /src/core/arm/dynarmic/arm_dynarmic.h
parentmemory: Remove GetCurrentPageTablePointers (diff)
downloadyuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar.gz
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar.bz2
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar.lz
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar.xz
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.tar.zst
yuzu-67a70bd9e1655dfd705550c1d561f3ba444360c8.zip
Diffstat (limited to '')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h
index 834dc989e..96148a1a5 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.h
+++ b/src/core/arm/dynarmic/arm_dynarmic.h
@@ -4,12 +4,17 @@
#pragma once
+#include <map>
#include <memory>
#include <dynarmic/dynarmic.h>
#include "common/common_types.h"
#include "core/arm/arm_interface.h"
#include "core/arm/skyeye_common/armstate.h"
+namespace Memory {
+struct PageTable;
+} // namespace Memory
+
class ARM_Dynarmic final : public ARM_Interface {
public:
ARM_Dynarmic(PrivilegeMode initial_mode);
@@ -36,8 +41,11 @@ public:
void ExecuteInstructions(int num_instructions) override;
void ClearInstructionCache() override;
+ void PageTableChanged() override;
private:
- std::unique_ptr<Dynarmic::Jit> jit;
+ Dynarmic::Jit* jit = nullptr;
+ Memory::PageTable* current_page_table = nullptr;
+ std::map<Memory::PageTable*, std::unique_ptr<Dynarmic::Jit>> jits;
std::shared_ptr<ARMul_State> interpreter_state;
};