--- nono/m88xx0/m88100disasm.h 2026/04/29 17:04:34 1.1.1.2 +++ nono/m88xx0/m88100disasm.h 2026/04/29 17:04:57 1.1.1.6 @@ -9,35 +9,40 @@ #include "disasm.h" #include "m88100.h" -class m88100disasm : public Disasm +class m88100disasm final : public Disasm { using inherited = Disasm; public: - m88100disasm(DebuggerMD *m); + m88100disasm(DebuggerMemoryStream& mem); ~m88100disasm() override; - bool Exec(saddr_t laddr) override; + bool Exec() override; - private: - bool opt_alias = true; // いくつかの命令を別名にディスアセンブルする + // 別名 + std::string alttext {}; - uint32 peek(); - uint32 fetch(); + private: + bool use_altname {}; // 別ニーモニックを使うなら true - uint32 xip = 0; - uint32 phys_xip = 0; + uint32 xip {}; - uint32 opX = 0; + uint32 opX {}; std::string name {}; std::string arg0 {}; std::string arg1 {}; std::string arg2 {}; + // 別名用 + std::string altname {}; + std::string altarg0 {}; + std::string altarg1 {}; + std::string altarg2 {}; std::string rd(); std::string rs1(); std::string rs2(); std::string imm16(); std::string d16(); + std::string d26(); std::string crs(); std::string fcrs(); std::string fsize(uint32 t); @@ -51,7 +56,8 @@ class m88100disasm : public Disasm void ops_bb(std::string namebase); void ops_bcnd(std::string namebase); void ops_tb(std::string namebase); - void ops_ldst_reg(std::string namebase); + void ops_ldst_imm(const std::string& namebase); + void ops_ldst_reg(const std::string& namebase, std::string suffix); void op_unimpl();