#pragma once #include #include namespace EightBit { class Disassembler; class Z80; class Profiler { public: Profiler(Z80& cpu, Disassembler& disassembler); ~Profiler(); void addInstruction(uint8_t instruction); void addAddress(uint16_t address); void dump() const; private: std::array m_instructions; std::array m_addresses; Z80& m_cpu; Disassembler& m_disassembler; void dumpInstructionProfiles() const; void dumpAddressProfiles() const; }; }