diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp index 7d83f9717..6afad0e0c 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic.cpp | |||
| @@ -86,21 +86,17 @@ public: | |||
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | void AddTicks(u64 ticks) override { | 88 | void AddTicks(u64 ticks) override { |
| 89 | if (ticks > ticks_remaining) { | 89 | CoreTiming::AddTicks(ticks - num_interpreted_instructions); |
| 90 | ticks_remaining = 0; | 90 | num_interpreted_instructions = 0; |
| 91 | return; | ||
| 92 | } | ||
| 93 | ticks -= ticks_remaining; | ||
| 94 | } | 91 | } |
| 95 | u64 GetTicksRemaining() override { | 92 | u64 GetTicksRemaining() override { |
| 96 | return ticks_remaining; | 93 | return std::max(CoreTiming::GetDowncount(), 0); |
| 97 | } | 94 | } |
| 98 | u64 GetCNTPCT() override { | 95 | u64 GetCNTPCT() override { |
| 99 | return CoreTiming::GetTicks(); | 96 | return CoreTiming::GetTicks(); |
| 100 | } | 97 | } |
| 101 | 98 | ||
| 102 | ARM_Dynarmic& parent; | 99 | ARM_Dynarmic& parent; |
| 103 | size_t ticks_remaining = 0; | ||
| 104 | size_t num_interpreted_instructions = 0; | 100 | size_t num_interpreted_instructions = 0; |
| 105 | u64 tpidrro_el0 = 0; | 101 | u64 tpidrro_el0 = 0; |
| 106 | u64 tpidr_el0 = 0; | 102 | u64 tpidr_el0 = 0; |