X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=spike_main%2Fspike-dasm.cc;h=2852835a6dca5ee9947dda96a2b91b4b84a40f06;hb=03b8bad375217fbc2143046e8caad9d80301abdb;hp=aecaa0a05ec3c3c13cf174572fe8be3c38949414;hpb=9b960e91b4d7e44d59fd73a7199517a82ba07c86;p=riscv-isa-sim.git diff --git a/spike_main/spike-dasm.cc b/spike_main/spike-dasm.cc index aecaa0a..2852835 100644 --- a/spike_main/spike-dasm.cc +++ b/spike_main/spike-dasm.cc @@ -17,17 +17,17 @@ using namespace std; int main(int argc, char** argv) { string s; - disassembler_t d; + const char* isa = DEFAULT_ISA; std::function extension; option_parser_t parser; parser.option(0, "extension", 1, [&](const char* s){extension = find_extension(s);}); + parser.option(0, "isa", 1, [&](const char* s){isa = s;}); parser.parse(argv); - if (extension) { - for (auto disasm_insn : extension()->get_disasms()) - d.add_insn(disasm_insn); - } + processor_t p(isa, 0, 0); + if (extension) + p.register_extension(extension()); while (getline(cin, s)) { @@ -44,7 +44,7 @@ int main(int argc, char** argv) if (nbits < 64) bits = bits << (64 - nbits) >> (64 - nbits); - string dis = d.disassemble(bits); + string dis = p.get_disassembler()->disassemble(bits); s = s.substr(0, start) + dis + s.substr(end+1); start += dis.length(); }