diff options
Diffstat (limited to 'src/devices/cpu/mips/mips3dsm.h')
-rw-r--r-- | src/devices/cpu/mips/mips3dsm.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/devices/cpu/mips/mips3dsm.h b/src/devices/cpu/mips/mips3dsm.h index a38771bbba0..50bb28875ea 100644 --- a/src/devices/cpu/mips/mips3dsm.h +++ b/src/devices/cpu/mips/mips3dsm.h @@ -24,17 +24,40 @@ public: offs_t dasm_one(std::ostream &stream, offs_t pc, u32 op); -private: +protected: static const char *const reg[32]; static const char *const cacheop[32]; static const char *const cpreg[4][32]; static const char *const ccreg[4][32]; inline std::string signed_16bit(int16_t val); + virtual uint32_t dasm_extra_base(uint32_t pc, uint32_t op, std::ostream &stream); + virtual uint32_t dasm_extra_special(uint32_t pc, uint32_t op, std::ostream &stream); + virtual uint32_t dasm_extra_regimm(uint32_t pc, uint32_t op, std::ostream &stream); uint32_t dasm_cop0(uint32_t pc, uint32_t op, std::ostream &stream); uint32_t dasm_cop1(uint32_t pc, uint32_t op, std::ostream &stream); uint32_t dasm_cop1x(uint32_t pc, uint32_t op, std::ostream &stream); - uint32_t dasm_cop2(uint32_t pc, uint32_t op, std::ostream &stream); + virtual uint32_t dasm_cop2(uint32_t pc, uint32_t op, std::ostream &stream); + virtual uint32_t dasm_idt(uint32_t pc, uint32_t op, std::ostream &stream); +}; +class ee_disassembler : public mips3_disassembler +{ +public: + ee_disassembler() = default; + virtual ~ee_disassembler() = default; + +protected: + static const char *const vreg[32]; + + uint32_t dasm_extra_base(uint32_t pc, uint32_t op, std::ostream &stream) override; + uint32_t dasm_extra_special(uint32_t pc, uint32_t op, std::ostream &stream) override; + uint32_t dasm_extra_regimm(uint32_t pc, uint32_t op, std::ostream &stream) override; + uint32_t dasm_idt(uint32_t pc, uint32_t op, std::ostream &stream) override; + uint32_t dasm_mmi(uint32_t pc, uint32_t op, std::ostream &stream); + uint32_t dasm_mmi0(uint32_t pc, uint32_t op, std::ostream &stream); + uint32_t dasm_mmi1(uint32_t pc, uint32_t op, std::ostream &stream); + uint32_t dasm_mmi2(uint32_t pc, uint32_t op, std::ostream &stream); + uint32_t dasm_mmi3(uint32_t pc, uint32_t op, std::ostream &stream); }; #endif |