diff options
| author | 2015-01-08 19:39:14 -0500 | |
|---|---|---|
| committer | 2015-01-08 19:39:14 -0500 | |
| commit | 620d77b7e314f5efae36d12c88637cd337b257ef (patch) | |
| tree | b6bd9285d90f7fe92411d936724f7d5d952fff5c /src | |
| parent | Merge pull request #443 from Subv/sleep_thread (diff) | |
| download | yuzu-620d77b7e314f5efae36d12c88637cd337b257ef.tar.gz yuzu-620d77b7e314f5efae36d12c88637cd337b257ef.tar.xz yuzu-620d77b7e314f5efae36d12c88637cd337b257ef.zip | |
Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/dyncom/arm_dyncom.cpp | 5 | ||||
| -rw-r--r-- | src/core/arm/dyncom/arm_dyncom.h | 3 |
2 files changed, 2 insertions, 6 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom.cpp b/src/core/arm/dyncom/arm_dyncom.cpp index c779e3fd4..02a3da1ce 100644 --- a/src/core/arm/dyncom/arm_dyncom.cpp +++ b/src/core/arm/dyncom/arm_dyncom.cpp | |||
| @@ -15,7 +15,7 @@ const static cpu_config_t s_arm11_cpu_info = { | |||
| 15 | "armv6", "arm11", 0x0007b000, 0x0007f000, NONCACHE | 15 | "armv6", "arm11", 0x0007b000, 0x0007f000, NONCACHE |
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | ARM_DynCom::ARM_DynCom() : ticks(0) { | 18 | ARM_DynCom::ARM_DynCom() { |
| 19 | state = std::unique_ptr<ARMul_State>(new ARMul_State); | 19 | state = std::unique_ptr<ARMul_State>(new ARMul_State); |
| 20 | 20 | ||
| 21 | ARMul_EmulateInit(); | 21 | ARMul_EmulateInit(); |
| @@ -74,11 +74,10 @@ void ARM_DynCom::SetCPSR(u32 cpsr) { | |||
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | u64 ARM_DynCom::GetTicks() const { | 76 | u64 ARM_DynCom::GetTicks() const { |
| 77 | return ticks; | 77 | return CoreTiming::GetTicks(); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | void ARM_DynCom::AddTicks(u64 ticks) { | 80 | void ARM_DynCom::AddTicks(u64 ticks) { |
| 81 | this->ticks += ticks; | ||
| 82 | down_count -= ticks; | 81 | down_count -= ticks; |
| 83 | if (down_count < 0) | 82 | if (down_count < 0) |
| 84 | CoreTiming::Advance(); | 83 | CoreTiming::Advance(); |
diff --git a/src/core/arm/dyncom/arm_dyncom.h b/src/core/arm/dyncom/arm_dyncom.h index 7284dcd07..9e102a46e 100644 --- a/src/core/arm/dyncom/arm_dyncom.h +++ b/src/core/arm/dyncom/arm_dyncom.h | |||
| @@ -89,8 +89,5 @@ public: | |||
| 89 | void ExecuteInstructions(int num_instructions) override; | 89 | void ExecuteInstructions(int num_instructions) override; |
| 90 | 90 | ||
| 91 | private: | 91 | private: |
| 92 | |||
| 93 | std::unique_ptr<ARMul_State> state; | 92 | std::unique_ptr<ARMul_State> state; |
| 94 | u64 ticks; | ||
| 95 | |||
| 96 | }; | 93 | }; |