Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
This commit is contained in:
parent
cf1bbe8705
commit
620d77b7e3
|
@ -15,7 +15,7 @@ const static cpu_config_t s_arm11_cpu_info = {
|
||||||
"armv6", "arm11", 0x0007b000, 0x0007f000, NONCACHE
|
"armv6", "arm11", 0x0007b000, 0x0007f000, NONCACHE
|
||||||
};
|
};
|
||||||
|
|
||||||
ARM_DynCom::ARM_DynCom() : ticks(0) {
|
ARM_DynCom::ARM_DynCom() {
|
||||||
state = std::unique_ptr<ARMul_State>(new ARMul_State);
|
state = std::unique_ptr<ARMul_State>(new ARMul_State);
|
||||||
|
|
||||||
ARMul_EmulateInit();
|
ARMul_EmulateInit();
|
||||||
|
@ -74,11 +74,10 @@ void ARM_DynCom::SetCPSR(u32 cpsr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 ARM_DynCom::GetTicks() const {
|
u64 ARM_DynCom::GetTicks() const {
|
||||||
return ticks;
|
return CoreTiming::GetTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARM_DynCom::AddTicks(u64 ticks) {
|
void ARM_DynCom::AddTicks(u64 ticks) {
|
||||||
this->ticks += ticks;
|
|
||||||
down_count -= ticks;
|
down_count -= ticks;
|
||||||
if (down_count < 0)
|
if (down_count < 0)
|
||||||
CoreTiming::Advance();
|
CoreTiming::Advance();
|
||||||
|
|
|
@ -89,8 +89,5 @@ public:
|
||||||
void ExecuteInstructions(int num_instructions) override;
|
void ExecuteInstructions(int num_instructions) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::unique_ptr<ARMul_State> state;
|
std::unique_ptr<ARMul_State> state;
|
||||||
u64 ticks;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue