pureikyubu/SRC/Debugger/Perf.cpp
2020-09-04 00:26:40 +03:00

66 lines
1.3 KiB
C++

#include "pch.h"
namespace Debug
{
PerfCounters* g_PerfCounters = nullptr;
PerfCounters::PerfCounters()
{
}
PerfCounters::~PerfCounters()
{
}
int64_t PerfCounters::GetCounter(PerfCounter counter)
{
int64_t value = 0;
switch (counter)
{
case PerfCounter::GekkoInstructions:
return Gekko::Gekko->GetInstructionCounter();
break;
case PerfCounter::DspInstructions:
return Flipper::DSP->core->GetInstructionCounter();
break;
case PerfCounter::VIs:
return pi.intCounters[(size_t)PIInterruptSource::VI];
break;
case PerfCounter::PEs:
return pi.intCounters[(size_t)PIInterruptSource::PE_FINISH];
break;
}
return value;
}
void PerfCounters::ResetCounter(PerfCounter counter)
{
switch (counter)
{
case PerfCounter::GekkoInstructions:
Gekko::Gekko->ResetInstructionCounter();
break;
case PerfCounter::DspInstructions:
Flipper::DSP->core->ResetInstructionCounter();
break;
case PerfCounter::VIs:
pi.intCounters[(size_t)PIInterruptSource::VI] = 0;
break;
case PerfCounter::PEs:
pi.intCounters[(size_t)PIInterruptSource::PE_FINISH] = 0;
break;
}
}
void PerfCounters::ResetAllCounters()
{
for (int i = 0; i < (int)PerfCounter::Max; i++)
{
ResetCounter((PerfCounter)i);
}
}
}