#include #include #include "isa.hh" #include "mneumonic.hh" namespace tostring { const std::unordered_map& op() { static const std::unordered_map _ = { {isa::op::ADC, mneumonic::op::ADC}, {isa::op::AND, mneumonic::op::AND}, {isa::op::ASL, mneumonic::op::ASL}, {isa::op::BBR0, mneumonic::op::BBR0}, {isa::op::BBR1, mneumonic::op::BBR1}, {isa::op::BBR2, mneumonic::op::BBR2}, {isa::op::BBR3, mneumonic::op::BBR3}, {isa::op::BBR4, mneumonic::op::BBR4}, {isa::op::BBR5, mneumonic::op::BBR5}, {isa::op::BBR6, mneumonic::op::BBR6}, {isa::op::BBR7, mneumonic::op::BBR7}, {isa::op::BBS0, mneumonic::op::BBS0}, {isa::op::BBS1, mneumonic::op::BBS1}, {isa::op::BBS2, mneumonic::op::BBS2}, {isa::op::BBS3, mneumonic::op::BBS3}, {isa::op::BBS4, mneumonic::op::BBS4}, {isa::op::BBS5, mneumonic::op::BBS5}, {isa::op::BBS6, mneumonic::op::BBS6}, {isa::op::BBS7, mneumonic::op::BBS7}, {isa::op::BCC, mneumonic::op::BCC}, {isa::op::BCS, mneumonic::op::BCS}, {isa::op::BEQ, mneumonic::op::BEQ}, {isa::op::BIT, mneumonic::op::BIT}, {isa::op::BMI, mneumonic::op::BMI}, {isa::op::BNE, mneumonic::op::BNE}, {isa::op::BPL, mneumonic::op::BPL}, {isa::op::BRA, mneumonic::op::BRA}, {isa::op::BRK, mneumonic::op::BRK}, {isa::op::BVC, mneumonic::op::BVC}, {isa::op::BVS, mneumonic::op::BVS}, {isa::op::CLC, mneumonic::op::CLC}, {isa::op::CLD, mneumonic::op::CLD}, {isa::op::CLI, mneumonic::op::CLI}, {isa::op::CLV, mneumonic::op::CLV}, {isa::op::CMP, mneumonic::op::CMP}, {isa::op::CPX, mneumonic::op::CPX}, {isa::op::CPY, mneumonic::op::CPY}, {isa::op::DEC, mneumonic::op::DEC}, {isa::op::DEX, mneumonic::op::DEX}, {isa::op::DEY, mneumonic::op::DEY}, {isa::op::EOR, mneumonic::op::EOR}, {isa::op::INC, mneumonic::op::INC}, {isa::op::INX, mneumonic::op::INX}, {isa::op::INY, mneumonic::op::INY}, {isa::op::JMP, mneumonic::op::JMP}, {isa::op::JSR, mneumonic::op::JSR}, {isa::op::LDA, mneumonic::op::LDA}, {isa::op::LDX, mneumonic::op::LDX}, {isa::op::LDY, mneumonic::op::LDY}, {isa::op::LSR, mneumonic::op::LSR}, {isa::op::NOP, mneumonic::op::NOP}, {isa::op::ORA, mneumonic::op::ORA}, {isa::op::PHA, mneumonic::op::PHA}, {isa::op::PHP, mneumonic::op::PHP}, {isa::op::PHX, mneumonic::op::PHX}, {isa::op::PHY, mneumonic::op::PHY}, {isa::op::PLA, mneumonic::op::PLA}, {isa::op::PLP, mneumonic::op::PLP}, {isa::op::PLX, mneumonic::op::PLX}, {isa::op::PLY, mneumonic::op::PLY}, {isa::op::RMB0, mneumonic::op::RMB0}, {isa::op::RMB1, mneumonic::op::RMB1}, {isa::op::RMB2, mneumonic::op::RMB2}, {isa::op::RMB3, mneumonic::op::RMB3}, {isa::op::RMB4, mneumonic::op::RMB4}, {isa::op::RMB5, mneumonic::op::RMB5}, {isa::op::RMB6, mneumonic::op::RMB6}, {isa::op::RMB7, mneumonic::op::RMB7}, {isa::op::ROL, mneumonic::op::ROL}, {isa::op::ROR, mneumonic::op::ROR}, {isa::op::RTI, mneumonic::op::RTI}, {isa::op::RTS, mneumonic::op::RTS}, {isa::op::SBC, mneumonic::op::SBC}, {isa::op::SEC, mneumonic::op::SEC}, {isa::op::SED, mneumonic::op::SED}, {isa::op::SEI, mneumonic::op::SEI}, {isa::op::SMB0, mneumonic::op::SMB0}, {isa::op::SMB1, mneumonic::op::SMB1}, {isa::op::SMB2, mneumonic::op::SMB2}, {isa::op::SMB3, mneumonic::op::SMB3}, {isa::op::SMB4, mneumonic::op::SMB4}, {isa::op::SMB5, mneumonic::op::SMB5}, {isa::op::SMB6, mneumonic::op::SMB6}, {isa::op::SMB7, mneumonic::op::SMB7}, {isa::op::STA, mneumonic::op::STA}, {isa::op::STP, mneumonic::op::STP}, {isa::op::STX, mneumonic::op::STX}, {isa::op::STY, mneumonic::op::STY}, {isa::op::STZ, mneumonic::op::STZ}, {isa::op::TAX, mneumonic::op::TAX}, {isa::op::TAY, mneumonic::op::TAY}, {isa::op::TRB, mneumonic::op::TRB}, {isa::op::TSB, mneumonic::op::TSB}, {isa::op::TSX, mneumonic::op::TSX}, {isa::op::TXA, mneumonic::op::TXA}, {isa::op::TXS, mneumonic::op::TXS}, {isa::op::TYA, mneumonic::op::TYA}, {isa::op::WAI, mneumonic::op::WAI}, }; return _; } const std::unordered_map& mode() { static const std::unordered_map _ = { {isa::mode::A, mneumonic::mode::A}, {isa::mode::AII, mneumonic::mode::AII}, {isa::mode::AIX, mneumonic::mode::AIX}, {isa::mode::AIY, mneumonic::mode::AIY}, {isa::mode::AI, mneumonic::mode::AI}, {isa::mode::ACC, mneumonic::mode::ACC}, {isa::mode::IMM, mneumonic::mode::IMM}, {isa::mode::I, mneumonic::mode::I}, {isa::mode::R, mneumonic::mode::R}, {isa::mode::S, mneumonic::mode::S}, {isa::mode::ZP, mneumonic::mode::ZP}, {isa::mode::ZPII, mneumonic::mode::ZPII}, {isa::mode::ZPX, mneumonic::mode::ZPX}, {isa::mode::ZPY, mneumonic::mode::ZPY}, {isa::mode::ZPI, mneumonic::mode::ZPI}, {isa::mode::ZPIY, mneumonic::mode::ZPIY}, }; return _; } }