--- nono/m88xx0/m88100disasm.h 2026/04/29 17:04:44 1.1.1.4 +++ nono/m88xx0/m88100disasm.h 2026/04/29 17:05:15 1.1.1.8 @@ -7,20 +7,21 @@ #pragma once #include "disasm.h" -#include "m88100.h" -class m88100disasm final : public Disasm +class m88100disasm final : public DisasmLine { - using inherited = Disasm; + using inherited = DisasmLine; public: - m88100disasm(DebuggerMemoryStream& mem); + m88100disasm(); ~m88100disasm() override; - bool Exec() override; + // 逆アセンブルを実行 + bool Exec(DebuggerMemoryStream *mem_) override; - private: - bool opt_alias {}; // いくつかの命令を別名にディスアセンブルする + // 別ニーモニックを使うなら true (グローバル) + static bool use_altname; + private: uint32 xip {}; uint32 opX {}; @@ -28,26 +29,35 @@ class m88100disasm final : public Disasm 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); std::string fsize(); std::string wo5(); + uint32 wo5mask(); std::string cio(); std::string b5(); std::string m5(); + std::string alt_m5(); std::string vec9(); void ops_bb(std::string namebase); - void ops_bcnd(std::string namebase); + void ops_bcnd(std::string n); 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();