diff options
author | bunnei <bunneidev@gmail.com> | 2018-03-19 03:35:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-19 03:35:47 +0100 |
commit | 23a0d2d7b77fa619edc7d69d0162bd3071b67b4b (patch) | |
tree | 85f20b5e8bbd0b1b2b6e28eac6224908a0f3b7fe /src/core/arm/unicorn | |
parent | Merge pull request #250 from bunnei/buffer-dequeue-wait (diff) | |
parent | Implements citra-emu/citra#3184 (diff) | |
download | yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar.gz yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar.bz2 yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar.lz yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar.xz yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.tar.zst yuzu-23a0d2d7b77fa619edc7d69d0162bd3071b67b4b.zip |
Diffstat (limited to 'src/core/arm/unicorn')
-rw-r--r-- | src/core/arm/unicorn/arm_unicorn.cpp | 9 | ||||
-rw-r--r-- | src/core/arm/unicorn/arm_unicorn.h | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index 162c766fd..bd98cb160 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp @@ -2,6 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <algorithm> #include <unicorn/arm64.h> #include "common/assert.h" #include "common/microprofile.h" @@ -153,6 +154,14 @@ void ARM_Unicorn::SetTlsAddress(VAddr base) { CHECKED(uc_reg_write(uc, UC_ARM64_REG_TPIDRRO_EL0, &base)); } +void ARM_Unicorn::Run() { + ExecuteInstructions(std::max(CoreTiming::GetDowncount(), 0)); +} + +void ARM_Unicorn::Step() { + ExecuteInstructions(1); +} + MICROPROFILE_DEFINE(ARM_Jit, "ARM JIT", "ARM JIT", MP_RGB(255, 64, 64)); void ARM_Unicorn::ExecuteInstructions(int num_instructions) { diff --git a/src/core/arm/unicorn/arm_unicorn.h b/src/core/arm/unicorn/arm_unicorn.h index 00b5b1865..b99b58e4c 100644 --- a/src/core/arm/unicorn/arm_unicorn.h +++ b/src/core/arm/unicorn/arm_unicorn.h @@ -30,7 +30,9 @@ public: void SaveContext(ThreadContext& ctx) override; void LoadContext(const ThreadContext& ctx) override; void PrepareReschedule() override; - void ExecuteInstructions(int num_instructions) override; + void ExecuteInstructions(int num_instructions); + void Run() override; + void Step() override; void ClearInstructionCache() override; void PageTableChanged() override{}; |