diff options
Diffstat (limited to 'src/devices/cpu/vax/vaxdasm.cpp')
-rw-r--r-- | src/devices/cpu/vax/vaxdasm.cpp | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/src/devices/cpu/vax/vaxdasm.cpp b/src/devices/cpu/vax/vaxdasm.cpp index 423f5746ebc..229d3972fda 100644 --- a/src/devices/cpu/vax/vaxdasm.cpp +++ b/src/devices/cpu/vax/vaxdasm.cpp @@ -23,37 +23,11 @@ u32 vax_disassembler::opcode_alignment() const return 1; } -enum class vax_disassembler::mode : u8 -{ - none, - rb, srb, urb, cntb, rw, srw, urw, mskw, rl, srl, url, posl, prl, rq, srq, urq, ro, uro, - mb, mw, ml, mq, mo, - wb, ww, wl, wq, wo, - ab, aw, al, aq, ao, - bb, bw, - vb -}; - namespace { using namespace std::literals; using mode = vax_disassembler::mode; -static constexpr bool is_read_mode(mode m) -{ - switch (m) - { - case mode::rb: case mode::srb: case mode::urb: case mode::cntb: - case mode::rw: case mode::srw: case mode::urw: case mode::mskw: - case mode::rl: case mode::srl: case mode::url: case mode::posl: case mode::prl: - case mode::rq: case mode::urq: - case mode::ro: case mode::uro: - return true; - default: - return false; - } -} - static constexpr bool is_address_mode(mode m) { return m == mode::ab || m == mode::aw || m == mode::al || m == mode::aq || m == mode::ao; @@ -1119,3 +1093,23 @@ offs_t vax_disassembler::disassemble(std::ostream &stream, offs_t pc, const vax_ else return disassemble_inst(stream, s_nonprefix_ops[op], pc, ppc, opcodes); } + +bool vax_disassembler::is_read_mode(vax_disassembler::mode m) +{ + switch (m) + { + case mode::rb: case mode::srb: case mode::urb: case mode::cntb: + case mode::rw: case mode::srw: case mode::urw: case mode::mskw: + case mode::rl: case mode::srl: case mode::url: case mode::posl: case mode::prl: + case mode::rq: case mode::urq: + case mode::ro: case mode::uro: + return true; + default: + return false; + } +} + +const vax_disassembler::mode* vax_disassembler::get_operands(u8 op) +{ + return s_nonprefix_ops[op].operand; +} |