|
|
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: #include "m88100.h"
11:
12: class m88100disasm : public Disasm
13: {
1.1.1.2 root 14: using inherited = Disasm;
1.1 root 15: public:
1.1.1.3 ! root 16: m88100disasm(DebuggerMD *md);
1.1.1.2 root 17: ~m88100disasm() override;
1.1 root 18:
1.1.1.2 root 19: bool Exec(saddr_t laddr) override;
1.1 root 20:
21: private:
1.1.1.3 ! root 22: bool opt_alias {}; // いくつかの命令を別名にディスアセンブルする
1.1.1.2 root 23:
1.1.1.3 ! root 24: uint32 peek(const saddr_t& laddr);
1.1 root 25:
1.1.1.3 ! root 26: uint32 xip {};
1.1 root 27:
1.1.1.3 ! root 28: uint32 opX {};
1.1 root 29: std::string name {};
30: std::string arg0 {};
31: std::string arg1 {};
32: std::string arg2 {};
33:
34: std::string rd();
35: std::string rs1();
36: std::string rs2();
37: std::string imm16();
38: std::string d16();
39: std::string crs();
40: std::string fcrs();
41: std::string fsize(uint32 t);
42: std::string fsize();
43: std::string wo5();
44: std::string cio();
45: std::string b5();
46: std::string m5();
47: std::string vec9();
48:
49: void ops_bb(std::string namebase);
50: void ops_bcnd(std::string namebase);
51: void ops_tb(std::string namebase);
52: void ops_ldst_reg(std::string namebase);
53:
54: void op_unimpl();
55:
56: #define OP_PROTO(name) void __CONCAT(op_,name)()
57: #include "m88100ops.h"
58: #undef OP_PROTO
59: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.