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:
@@ -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"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user