summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-03-24 05:47:42 -0400
committerGitHub <noreply@github.com>2018-03-24 05:47:42 -0400
commit46945b5c962e680d8fe963bbff9663f44c2a3ab2 (patch)
treec395ba2775c49754ef05222d2bb097131412d0d6
parent31816aac385b886055b5bbca545d1eb43e3a0d2b (diff)
parent88c9608eacd2851ecbe9ceb634a64309789108e7 (diff)
Merge pull request #275 from MerryMage/addticks-dynarmic
arm_dynarmic: Fix timing
-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:
}
void AddTicks(u64 ticks) override {
- if (ticks > ticks_remaining) {
- ticks_remaining = 0;
- return;
- }
- ticks -= ticks_remaining;
+ CoreTiming::AddTicks(ticks - num_interpreted_instructions);
+ num_interpreted_instructions = 0;
}
u64 GetTicksRemaining() override {
- return ticks_remaining;
+ return std::max(CoreTiming::GetDowncount(), 0);
}
u64 GetCNTPCT() override {
return CoreTiming::GetTicks();
}
ARM_Dynarmic& parent;
- size_t ticks_remaining = 0;
size_t num_interpreted_instructions = 0;
u64 tpidrro_el0 = 0;
u64 tpidr_el0 = 0;