diff options
author | Liam <byteslice@airmail.cc> | 2022-08-08 03:39:54 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2022-08-08 03:39:54 +0200 |
commit | aae208d07fb70d01766a01c76acc41bb2bb1e2bc (patch) | |
tree | 56d77a60abfade92265cfc0cbf0ec1caf813379e /src/core | |
parent | Merge pull request #8637 from liamwhite/bad-interrupts (diff) | |
download | yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar.gz yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar.bz2 yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar.lz yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar.xz yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.tar.zst yuzu-aae208d07fb70d01766a01c76acc41bb2bb1e2bc.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_32.cpp | 6 | ||||
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_64.cpp | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index 2e0e16b6e..1638bc41d 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp @@ -144,7 +144,7 @@ public: u64 GetTicksRemaining() override { if (parent.uses_wall_clock) { - if (!parent.interrupt_handlers[parent.core_index].IsInterrupted()) { + if (!IsInterrupted()) { return minimum_run_cycles; } return 0U; @@ -174,6 +174,10 @@ public: parent.jit.load()->HaltExecution(hr); } + bool IsInterrupted() { + return parent.system.Kernel().PhysicalCore(parent.core_index).IsInterrupted(); + } + ARM_Dynarmic_32& parent; Core::Memory::Memory& memory; std::size_t num_interpreted_instructions{}; diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index bf971b7dc..921a5a734 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -183,7 +183,7 @@ public: u64 GetTicksRemaining() override { if (parent.uses_wall_clock) { - if (!parent.interrupt_handlers[parent.core_index].IsInterrupted()) { + if (!IsInterrupted()) { return minimum_run_cycles; } return 0U; @@ -217,6 +217,10 @@ public: parent.jit.load()->HaltExecution(hr); } + bool IsInterrupted() { + return parent.system.Kernel().PhysicalCore(parent.core_index).IsInterrupted(); + } + ARM_Dynarmic_64& parent; Core::Memory::Memory& memory; u64 tpidrro_el0 = 0; |