Browse Source

Bind disas for instructions with the isa support

pull/912/head
Weiwei Li 4 years ago
parent
commit
a68d310bcb
  1. 2094
      disasm/disasm.cc
  2. 3
      riscv/disasm.h
  3. 2
      riscv/processor.cc
  4. 2
      spike_dasm/spike-dasm.cc

2094
disasm/disasm.cc

File diff suppressed because it is too large

3
riscv/disasm.h

@ -4,6 +4,7 @@
#define _RISCV_DISASM_H
#include "decode.h"
#include "processor.h"
#include <string>
#include <sstream>
#include <algorithm>
@ -80,7 +81,7 @@ class disasm_insn_t
class disassembler_t
{
public:
disassembler_t(int xlen);
disassembler_t(isa_parser_t* isa);
~disassembler_t();
std::string disassemble(insn_t insn) const;

2
riscv/processor.cc

@ -39,7 +39,7 @@ processor_t::processor_t(const char* isa, const char* priv, const char* varch,
register_base_instructions();
mmu = new mmu_t(sim, this);
disassembler = new disassembler_t(max_xlen);
disassembler = new disassembler_t(this);
for (auto e : custom_extensions)
register_extension(e.second);

2
spike_dasm/spike-dasm.cc

@ -28,7 +28,7 @@ int main(int argc, char** argv)
parser.parse(argv);
isa_parser_t isa_parser(isa);
disassembler_t* disassembler = new disassembler_t(isa_parser.get_max_xlen());
disassembler_t* disassembler = new disassembler_t(&isa_parser);
if (extension) {
for (auto disasm_insn : extension()->get_disasms()) {
disassembler->add_insn(disasm_insn);

Loading…
Cancel
Save