Remove dependence on binutils
[riscv-isa-sim.git] / riscv / disasm.h
1 #ifndef _RISCV_DISASM_H
2 #define _RISCV_DISASM_H
3
4 #include "decode.h"
5 #include <string>
6 #include <vector>
7
8 struct disasm_insn_t;
9
10 class disassembler
11 {
12 public:
13 disassembler();
14 ~disassembler();
15 std::string disassemble(insn_t insn);
16 private:
17 static const int HASH_SIZE = 256;
18 std::vector<const disasm_insn_t*> chain[HASH_SIZE+1];
19 void add_insn(disasm_insn_t* insn);
20 const disasm_insn_t* lookup(insn_t insn);
21 };
22
23 #endif