aboutsummaryrefslogtreecommitdiff
path: root/spike_dasm/spike-dasm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'spike_dasm/spike-dasm.cc')
-rw-r--r--spike_dasm/spike-dasm.cc17
1 files changed, 2 insertions, 15 deletions
diff --git a/spike_dasm/spike-dasm.cc b/spike_dasm/spike-dasm.cc
index fa6a25a..d40ac5d 100644
--- a/spike_dasm/spike-dasm.cc
+++ b/spike_dasm/spike-dasm.cc
@@ -27,21 +27,8 @@ int main(int argc, char** argv)
parser.option(0, "isa", 1, [&](const char* s){isa = s;});
parser.parse(argv);
- std::string lowercase;
- for (const char *p = isa; *p; p++)
- lowercase += std::tolower(*p);
-
- int xlen;
- if (lowercase.compare(0, 4, "rv32") == 0) {
- xlen = 32;
- } else if (lowercase.compare(0, 4, "rv64") == 0) {
- xlen = 64;
- } else {
- fprintf(stderr, "bad ISA string: %s\n", isa);
- return 1;
- }
-
- disassembler_t* disassembler = new disassembler_t(xlen);
+ isa_parser_t isa_parser(isa);
+ disassembler_t* disassembler = new disassembler_t(isa_parser.get_max_xlen());
if (extension) {
for (auto disasm_insn : extension()->get_disasms()) {
disassembler->add_insn(disasm_insn);