--- nono/m88xx0/m88100disasm.h 2026/04/29 17:04:31 1.1.1.1 +++ nono/m88xx0/m88100disasm.h 2026/04/29 17:05:11 1.1.1.7 @@ -1,41 +1,49 @@ // // nono -// Copyright (C) 2020 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once -#include "header.h" #include "disasm.h" #include "m88100.h" -class m88100disasm : public Disasm +class m88100disasm final : public Disasm { - typedef Disasm inherited; + using inherited = Disasm; public: - m88100disasm(DebuggerMD *m); - virtual ~m88100disasm(); + m88100disasm(DebuggerMemoryStream& mem); + ~m88100disasm() override; - virtual bool Exec(saddr_t laddr); + bool Exec() override; - private: - uint32 peek(); - uint32 fetch(); + // 別名 + std::string alttext {}; + + // 別ニーモニックを使うなら true (グローバル) + static bool use_altname; - uint32 xip = 0; - uint32 phys_xip = 0; + private: + 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); @@ -49,7 +57,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();