|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
7: #pragma once
8:
9: #include "disasm.h"
10:
1.1.1.8 ! root 11: class m88100disasm final : public DisasmLine
1.1 root 12: {
1.1.1.8 ! root 13: using inherited = DisasmLine;
1.1 root 14: public:
1.1.1.8 ! root 15: m88100disasm();
1.1.1.2 root 16: ~m88100disasm() override;
1.1 root 17:
1.1.1.8 ! root 18: // 逆アセンブルを実行
! 19: bool Exec(DebuggerMemoryStream *mem_) override;
1.1.1.6 root 20:
1.1.1.7 root 21: // 別ニーモニックを使うなら true (グローバル)
22: static bool use_altname;
1.1.1.2 root 23:
1.1.1.7 root 24: private:
1.1.1.3 root 25: uint32 xip {};
1.1 root 26:
1.1.1.3 root 27: uint32 opX {};
1.1 root 28: std::string name {};
29: std::string arg0 {};
30: std::string arg1 {};
31: std::string arg2 {};
1.1.1.6 root 32: // 別名用
33: std::string altname {};
34: std::string altarg0 {};
35: std::string altarg1 {};
36: std::string altarg2 {};
1.1 root 37:
38: std::string rd();
39: std::string rs1();
40: std::string rs2();
41: std::string imm16();
42: std::string d16();
1.1.1.5 root 43: std::string d26();
1.1 root 44: std::string crs();
45: std::string fcrs();
46: std::string fsize(uint32 t);
47: std::string fsize();
48: std::string wo5();
1.1.1.8 ! root 49: uint32 wo5mask();
1.1 root 50: std::string cio();
51: std::string b5();
52: std::string m5();
1.1.1.8 ! root 53: std::string alt_m5();
1.1 root 54: std::string vec9();
55:
56: void ops_bb(std::string namebase);
1.1.1.8 ! root 57: void ops_bcnd(std::string n);
1.1 root 58: void ops_tb(std::string namebase);
1.1.1.5 root 59: void ops_ldst_imm(const std::string& namebase);
1.1.1.6 root 60: void ops_ldst_reg(const std::string& namebase, std::string suffix);
1.1 root 61:
62: void op_unimpl();
63:
64: #define OP_PROTO(name) void __CONCAT(op_,name)()
65: #include "m88100ops.h"
66: #undef OP_PROTO
67: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.