Use new compiler toolchain's disassembler
[riscv-isa-sim.git] / riscv / processor.cc
index cce526bc74407d0abafa975be1251ba5fe8dfe26..385e329d8bce3e91a61512d8a13914d0567cf0ef 100644 (file)
@@ -221,6 +221,8 @@ void processor_t::deliver_ipi()
   run = true;
 }
 
+extern "C" int print_insn_little_riscv(bfd_vma, disassemble_info*);
+
 void processor_t::disasm(insn_t insn, reg_t pc)
 {
   printf("core %3d: 0x%016llx (0x%08x) ",id,(unsigned long long)pc,insn.bits);
@@ -229,14 +231,14 @@ void processor_t::disasm(insn_t insn, reg_t pc)
   disassemble_info info;
   INIT_DISASSEMBLE_INFO(info, stdout, fprintf);
   info.flavour = bfd_target_unknown_flavour;
-  info.arch = bfd_arch_mips;
-  info.mach = 101; // XXX bfd_mach_mips_riscv requires modified bfd.h
+  info.arch = bfd_architecture(25); // bfd_arch_riscv
+  info.mach = 164; // bfd_mach_riscv_rocket64
   info.endian = BFD_ENDIAN_LITTLE;
   info.buffer = (bfd_byte*)&insn;
   info.buffer_length = sizeof(insn);
   info.buffer_vma = pc;
 
-  int ret = print_insn_little_mips(pc, &info);
+  int ret = print_insn_little_riscv(pc, &info);
   assert(ret == insn_length(insn.bits));
   #else
   printf("unknown");