diff options
author | bunnei <bunneidev@gmail.com> | 2018-01-04 06:13:23 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-04 06:13:23 +0100 |
commit | 3f8b9181b553e8af9bd93899832ddc2c8cf73e8b (patch) | |
tree | 00df941867db6c14f172f6eb4ed99964ac3bc5b3 /src/core/arm/unicorn/arm_unicorn.h | |
parent | DownloadExternals: Use yuzu repo. (diff) | |
download | yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar.gz yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar.bz2 yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar.lz yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar.xz yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.tar.zst yuzu-3f8b9181b553e8af9bd93899832ddc2c8cf73e8b.zip |
Diffstat (limited to 'src/core/arm/unicorn/arm_unicorn.h')
-rw-r--r-- | src/core/arm/unicorn/arm_unicorn.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/core/arm/unicorn/arm_unicorn.h b/src/core/arm/unicorn/arm_unicorn.h new file mode 100644 index 000000000..90db3eb7f --- /dev/null +++ b/src/core/arm/unicorn/arm_unicorn.h @@ -0,0 +1,39 @@ +// Copyright 2018 Yuzu Emulator Team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <unicorn/unicorn.h> +#include "common/common_types.h" +#include "core/arm/arm_interface.h" + +class ARM_Unicorn final : public ARM_Interface { + +public: + ARM_Unicorn(); + ~ARM_Unicorn(); + void MapBackingMemory(VAddr address, size_t size, u8* memory, + Kernel::VMAPermission perms) override; + void SetPC(u64 pc) override; + 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; + u32 GetVFPReg(int index) const override; + void SetVFPReg(int index, u32 value) override; + u32 GetCPSR() const override; + void SetCPSR(u32 cpsr) override; + VAddr GetTlsAddress() const override; + void SetTlsAddress(VAddr address) override; + void SaveContext(ThreadContext& ctx) override; + void LoadContext(const ThreadContext& ctx) override; + void PrepareReschedule() override; + void ExecuteInstructions(int num_instructions) override; + void ClearInstructionCache() override; + void PageTableChanged() override{}; + +private: + uc_engine* uc{}; +}; |