cranelift: Add RISC-V disassembly capabilities to clif-util (#5117)

This just correctly maps our RISC-V ISA to capstone.
This commit is contained in:
Afonso Bordado
2022-10-25 18:03:04 +01:00
committed by GitHub
parent e62e530b7c
commit ba7b874ca3

View File

@@ -118,6 +118,18 @@ cfg_if! {
.mode(arch::sysz::ArchMode::Default) .mode(arch::sysz::ArchMode::Default)
.build() .build()
.map_err(map_caperr)?, .map_err(map_caperr)?,
Architecture::Riscv64 {..} => {
let mut cs = Capstone::new()
.riscv()
.mode(arch::riscv::ArchMode::RiscV64)
.build()
.map_err(map_caperr)?;
// Similar to AArch64, RISC-V uses inline constants rather than a separate
// constant pool. We want to skip dissasembly over inline constants instead
// of stopping on invalid bytes.
cs.set_skipdata(true).map_err(map_caperr)?;
cs
}
_ => anyhow::bail!("Unknown ISA"), _ => anyhow::bail!("Unknown ISA"),
}; };