--- nono/m88xx0/m88100disasm.h 2026/04/29 17:04:31 1.1.1.1 +++ nono/m88xx0/m88100disasm.h 2026/04/29 17:04:52 1.1.1.5 @@ -1,31 +1,29 @@ // // 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(); + bool opt_alias {}; // いくつかの命令を別名にディスアセンブルする - uint32 xip = 0; - uint32 phys_xip = 0; + uint32 xip {}; - uint32 opX = 0; + uint32 opX {}; std::string name {}; std::string arg0 {}; std::string arg1 {}; @@ -36,6 +34,7 @@ class m88100disasm : public Disasm std::string rs2(); std::string imm16(); std::string d16(); + std::string d26(); std::string crs(); std::string fcrs(); std::string fsize(uint32 t); @@ -49,6 +48,7 @@ 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_imm(const std::string& namebase); void ops_ldst_reg(std::string namebase); void op_unimpl();