diff options
| author | 2018-03-24 05:47:42 -0400 | |
|---|---|---|
| committer | 2018-03-24 05:47:42 -0400 | |
| commit | 46945b5c962e680d8fe963bbff9663f44c2a3ab2 (patch) | |
| tree | c395ba2775c49754ef05222d2bb097131412d0d6 /src/core | |
| parent | Merge pull request #274 from Subv/viewport_regs (diff) | |
| parent | arm_dynarmic: Fix timing (diff) | |
| download | yuzu-46945b5c962e680d8fe963bbff9663f44c2a3ab2.tar.gz yuzu-46945b5c962e680d8fe963bbff9663f44c2a3ab2.tar.xz yuzu-46945b5c962e680d8fe963bbff9663f44c2a3ab2.zip | |
Merge pull request #275 from MerryMage/addticks-dynarmic
arm_dynarmic: Fix timing
Diffstat (limited to 'src/core')
| -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; |