summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dynarmic/arm_dynarmic.h
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-01-09 22:33:46 +0100
committerbunnei <bunneidev@gmail.com>2018-01-12 23:48:29 +0100
commitd2fbc7832080955598c9fb6f083414eca47f0f19 (patch)
tree4f4b63aa2d37b86c39fdd17b12731bceda8bc90c /src/core/arm/dynarmic/arm_dynarmic.h
parentcore: Include <algorithm> where used. (diff)
downloadyuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar.gz
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar.bz2
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar.lz
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar.xz
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.tar.zst
yuzu-d2fbc7832080955598c9fb6f083414eca47f0f19.zip
Diffstat (limited to '')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h
index c62d02ec9..947fab3f4 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.h
+++ b/src/core/arm/dynarmic/arm_dynarmic.h
@@ -4,12 +4,18 @@
#pragma once
+#include <memory>
+#include <dynarmic/A64/a64.h>
#include "common/common_types.h"
#include "core/arm/arm_interface.h"
+#include "core/arm/unicorn/arm_unicorn.h"
+
+class ARM_Dynarmic_Callbacks;
class ARM_Dynarmic final : public ARM_Interface {
public:
ARM_Dynarmic();
+ ~ARM_Dynarmic();
void MapBackingMemory(VAddr address, size_t size, u8* memory,
Kernel::VMAPermission perms) override;
@@ -18,8 +24,8 @@ public:
u64 GetPC() const override;
u64 GetReg(int index) const override;
void SetReg(int index, u64 value) override;
- const u128& GetExtReg(int index) const override;
- void SetExtReg(int index, u128& value) override;
+ u128 GetExtReg(int index) const override;
+ void SetExtReg(int index, u128 value) override;
u32 GetVFPReg(int index) const override;
void SetVFPReg(int index, u32 value) override;
u32 GetCPSR() const override;
@@ -35,4 +41,10 @@ public:
void ClearInstructionCache() override;
void PageTableChanged() override;
+
+private:
+ friend class ARM_Dynarmic_Callbacks;
+ std::unique_ptr<ARM_Dynarmic_Callbacks> cb;
+ Dynarmic::A64::Jit jit;
+ ARM_Unicorn inner_unicorn;
};