summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.cpp10
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;