summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mips/mips3dsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/mips/mips3dsm.h')
-rw-r--r--src/devices/cpu/mips/mips3dsm.h27
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