Speedup by using string_view in memory read/write events

This commit is contained in:
Adrian Conlon 2024-03-08 17:51:15 +00:00
parent 6599a4ba47
commit ef0f8a5654
2 changed files with 10 additions and 7 deletions

View File

@ -1,20 +1,20 @@
#include "stdafx.h"
#include "checker_t.h"
void checker_t::addActualCycle(const uint16_t address, const uint8_t value, const std::string action) {
void checker_t::addActualCycle(const uint16_t address, const uint8_t value, const std::string_view action) {
m_actualCycles.push_back({ address, value, action });
}
void checker_t::addActualCycle(const EightBit::register16_t address, const uint8_t value, const std::string action) {
void checker_t::addActualCycle(const EightBit::register16_t address, const uint8_t value, const std::string_view action) {
addActualCycle(address.word, value, action);
}
void checker_t::addActualReadCycle(const EightBit::register16_t address, const uint8_t value) {
addActualCycle(address, value, "read");
addActualCycle(address, value, m_read_action);
}
void checker_t::addActualWriteCycle(const EightBit::register16_t address, const uint8_t value) {
addActualCycle(address, value, "write");
addActualCycle(address, value, m_write_action);
}
void checker_t::dumpCycles(const std::string which, const actual_cycles_t& events) {

View File

@ -20,7 +20,10 @@ private:
std::ostringstream m_os;
std::vector<std::string> m_messages;
typedef std::tuple<uint16_t, uint8_t, std::string> actual_cycle_t;
const std::string m_read_action = { "read" };
const std::string m_write_action = { "write" };
typedef std::tuple<uint16_t, uint8_t, std::string_view> actual_cycle_t;
typedef std::vector<actual_cycle_t> actual_cycles_t;
actual_cycles_t m_actualCycles;
bool m_cycle_count_mismatch = false;
@ -50,8 +53,8 @@ private:
bool check(std::string_view what, uint16_t address, uint8_t expected, uint8_t actual);
void addActualCycle(uint16_t address, uint8_t value, std::string action);
void addActualCycle(EightBit::register16_t address, uint8_t value, std::string action);
void addActualCycle(uint16_t address, uint8_t value, std::string_view action);
void addActualCycle(EightBit::register16_t address, uint8_t value, std::string_view action);
void addActualReadCycle(EightBit::register16_t address, uint8_t value);
void addActualWriteCycle(EightBit::register16_t address, uint8_t value);