Enum lief::assembly::instruction::Instructions
pub enum Instructions {
AArch64(Instruction),
X86(Instruction),
ARM(Instruction),
EBPF(Instruction),
PowerPC(Instruction),
Mips(Instruction),
RiscV(Instruction),
Generic(Generic),
}
Expand description
All instruction variants supported by LIEF
Variants§
AArch64(Instruction)
An AArch64 instruction
X86(Instruction)
A x86/x86-64 instruction
ARM(Instruction)
An ARM/thumb instruction
EBPF(Instruction)
An eBPF instruction
PowerPC(Instruction)
A PowerPC (ppc64/ppc32) instruction
Mips(Instruction)
A Mips (mips32/mips64) instruction
RiscV(Instruction)
A RISC-V (32 or 64 bit) instruction
Generic(Generic)
A generic instruction that doesn’t have an extended structure
Trait Implementations§
§impl Instruction for Instructions
impl Instruction for Instructions
§fn to_string_no_address(&self) -> String
fn to_string_no_address(&self) -> String
Same as
Instruction::to_string
but without the address as prefix§fn is_terminator(&self) -> bool
fn is_terminator(&self) -> bool
True if the instruction marks the end of a basic block
§fn is_syscall(&self) -> bool
fn is_syscall(&self) -> bool
True if the instruction is a syscall
§fn is_memory_access(&self) -> bool
fn is_memory_access(&self) -> bool
True if the instruction performs a memory access
§fn is_move_reg(&self) -> bool
fn is_move_reg(&self) -> bool
True if the instruction is a register to register move.
§fn is_barrier(&self) -> bool
fn is_barrier(&self) -> bool
True if the instruction prevents executing the instruction
that immediatly follows the current. This includes return
or unconditional branch instructions
§fn is_indirect_branch(&self) -> bool
fn is_indirect_branch(&self) -> bool
True if the instruction is and indirect branch. Read more
§fn is_conditional_branch(&self) -> bool
fn is_conditional_branch(&self) -> bool
True if the instruction is conditionally jumping to the next
instruction or an instruction into some other basic block.
§fn is_unconditional_branch(&self) -> bool
fn is_unconditional_branch(&self) -> bool
True if the instruction is jumping (unconditionally) to some other
basic block.
§fn is_compare(&self) -> bool
fn is_compare(&self) -> bool
True if the instruction is a comparison
§fn is_move_immediate(&self) -> bool
fn is_move_immediate(&self) -> bool
True if the instruction is moving an immediate
§fn is_bitcast(&self) -> bool
fn is_bitcast(&self) -> bool
True if the instruction is doing a bitcast
§fn memory_access(&self) -> MemoryAccess
fn memory_access(&self) -> MemoryAccess
Memory access flags
§fn branch_target(&self) -> Result<u64, Error>
fn branch_target(&self) -> Result<u64, Error>
Given a
Instruction::is_branch
instruction, try to evaluate the address of the
destination.Auto Trait Implementations§
impl RefUnwindSafe for Instructions
impl !Send for Instructions
impl !Sync for Instructions
impl Unpin for Instructions
impl UnwindSafe for Instructions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more