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