mirror of
https://github.com/emu-russia/pureikyubu.git
synced 2025-04-02 10:42:15 -04:00
66 lines
1.3 KiB
C++
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);
|
|
}
|
|
}
|
|
|
|
}
|