EightBit/LR35902/inc/Profiler.h
Adrian.Conlon 129286f1a7 Ensure LR35902 fuse tests run successfully to completion.
Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
2017-09-07 01:15:28 +01:00

32 lines
516 B
C++

#pragma once
#include <array>
#include <cstdint>
#include "Disassembler.h"
namespace EightBit {
namespace GameBoy {
class LR35902;
class Profiler {
public:
Profiler(LR35902& cpu);
void add(uint16_t address, uint8_t instruction);
void dump() const;
private:
std::array<uint64_t, 0x100> m_instructions;
std::array<uint64_t, 0x10000> m_addresses;
LR35902& m_cpu;
Disassembler m_disassembler;
void dumpInstructionProfiles() const;
void dumpAddressProfiles() const;
};
}
}