pub struct Instruction { /* private fields */ }Expand description
A decoded instruction.
Create one with decode,
decode_bytes, or by iterating over
disassemble. Its Display
output follows GNU objdump’s for a raw binary, such as addi gp,gp,256
or beqz a0,0x1040.
Implementations§
Source§impl Instruction
impl Instruction
Sourcepub fn length(&self) -> usize
pub fn length(&self) -> usize
The length of the encoding in bytes: 2, 4, 6 or 8.
Encodings with a reserved length (10 bytes or more) are decoded as a 2-byte illegal instruction.
Sourcepub fn mnemonic(&self) -> &'static str
pub fn mnemonic(&self) -> &'static str
The mnemonic, such as "addi", "li" or "amoadd.w".
An encoding that is not a valid instruction is shown as objdump shows
it, as an .insn directive (.insn 4, 0x0911003b), or as a .2byte
directive for a parcel of a reserved-length encoding. Use
is_illegal to check for these.
Compressed instructions are shown as the instruction they expand to,
and aliases (pseudoinstructions) are used where objdump uses them.
without_aliases gives the instruction as
encoded. The mnemonic does not include the .aq/.rl ordering
suffixes of atomic instructions, which Display
adds.
Sourcepub fn is_illegal(&self) -> bool
pub fn is_illegal(&self) -> bool
Whether the encoding is not a valid instruction. This includes the
all-zeros 16-bit encoding, which the ISA defines to be illegal and
which is shown as unimp.
Sourcepub fn without_aliases(&self) -> Instruction
pub fn without_aliases(&self) -> Instruction
The same instruction, shown as encoded: compressed instructions keep
their c. names and pseudoinstructions are not used. This matches
objdump -M no-aliases.