CoreTiming: Ported the CoreTiming namespace from PPSSPP
Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing.
This commit is contained in:
parent
6fad32ea98
commit
9bf82beb4c
6 changed files with 372 additions and 410 deletions
|
@ -103,6 +103,8 @@ public:
|
|||
return num_instructions;
|
||||
}
|
||||
|
||||
s64 down_count; ///< A decreasing counter of remaining cycles before the next event, decreased by the cpu run loop
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
#include "core/arm/dyncom/arm_dyncom.h"
|
||||
#include "core/arm/dyncom/arm_dyncom_interpreter.h"
|
||||
|
||||
#include "core/core_timing.h"
|
||||
|
||||
const static cpu_config_t s_arm11_cpu_info = {
|
||||
"armv6", "arm11", 0x0007b000, 0x0007f000, NONCACHE
|
||||
};
|
||||
|
@ -77,6 +79,9 @@ u64 ARM_DynCom::GetTicks() const {
|
|||
|
||||
void ARM_DynCom::AddTicks(u64 ticks) {
|
||||
this->ticks += ticks;
|
||||
down_count -= ticks;
|
||||
if (down_count < 0)
|
||||
CoreTiming::Advance();
|
||||
}
|
||||
|
||||
void ARM_DynCom::ExecuteInstructions(int num_instructions) {
|
||||
|
@ -85,7 +90,8 @@ void ARM_DynCom::ExecuteInstructions(int num_instructions) {
|
|||
// Dyncom only breaks on instruction dispatch. This only happens on every instruction when
|
||||
// executing one instruction at a time. Otherwise, if a block is being executed, more
|
||||
// instructions may actually be executed than specified.
|
||||
ticks += InterpreterMainLoop(state.get());
|
||||
unsigned ticks_executed = InterpreterMainLoop(state.get());
|
||||
AddTicks(ticks_executed);
|
||||
}
|
||||
|
||||
void ARM_DynCom::SaveContext(ThreadContext& ctx) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue