Struct iced_x86::InstructionInfo [−][src]
pub struct InstructionInfo { /* fields omitted */ }
Expand description
Contains information about an instruction, eg. read/written registers, read/written RFLAGS
bits, CPUID
feature bit, etc.
Created by an InstructionInfoFactory
.
Implementations
Gets all accessed registers. This method doesn’t return all accessed registers if is_save_restore_instruction()
is true
.
Some instructions have a r16
/r32
operand but only use the low 8 bits of the register. In that case
this method returns the 8-bit register even if it’s SPL
, BPL
, SIL
, DIL
and the
instruction was decoded in 16 or 32-bit mode. This is more accurate than returning the r16
/r32
register. Example instructions that do this: PINSRB
, ARPL
Gets all accessed memory locations
👎 Deprecated since 1.11.0: Use Instruction::is_privileged() instead
Use Instruction::is_privileged() instead
true
if it’s a privileged instruction (all CPL=0 instructions (except VMCALL
) and IOPL instructions IN
, INS
, OUT
, OUTS
, CLI
, STI
)
👎 Deprecated since 1.11.0: Use Instruction::is_stack_instruction() instead
Use Instruction::is_stack_instruction() instead
true
if this is an instruction that implicitly uses the stack pointer (SP
/ESP
/RSP
), eg. CALL
, PUSH
, POP
, RET
, etc.
See also Instruction::stack_pointer_increment()
👎 Deprecated since 1.11.0: Use Instruction::is_save_restore_instruction() instead
Use Instruction::is_save_restore_instruction() instead
true
if it’s an instruction that saves or restores too many registers (eg. FXRSTOR
, XSAVE
, etc).
used_registers()
won’t return all accessed registers.
👎 Deprecated since 1.11.0: Use Instruction::encoding() instead
Use Instruction::encoding() instead
Instruction encoding, eg. Legacy, 3DNow!, VEX, EVEX, XOP
👎 Deprecated since 1.11.0: Use Instruction::cpuid_features() instead
Use Instruction::cpuid_features() instead
Gets the CPU or CPUID feature flags
👎 Deprecated since 1.11.0: Use Instruction::flow_control() instead
Use Instruction::flow_control() instead
Control flow info
Operand #0 access
Operand #1 access
Operand #2 access
Operand #3 access
Operand #4 access
👎 Deprecated since 1.11.0: This method can panic, use try_op_access() instead
This method can panic, use try_op_access() instead
👎 Deprecated since 1.11.0: Use Instruction::rflags_read() instead
Use Instruction::rflags_read() instead
All flags that are read by the CPU when executing the instruction.
This method returns a RflagsBits
value. See also rflags_modified()
.
👎 Deprecated since 1.11.0: Use Instruction::rflags_written() instead
Use Instruction::rflags_written() instead
All flags that are written by the CPU, except those flags that are known to be undefined, always set or always cleared.
This method returns a RflagsBits
value. See also rflags_modified()
.
👎 Deprecated since 1.11.0: Use Instruction::rflags_cleared() instead
Use Instruction::rflags_cleared() instead
All flags that are always cleared by the CPU.
This method returns a RflagsBits
value. See also rflags_modified()
.
👎 Deprecated since 1.11.0: Use Instruction::rflags_set() instead
Use Instruction::rflags_set() instead
All flags that are always set by the CPU.
This method returns a RflagsBits
value. See also rflags_modified()
.
👎 Deprecated since 1.11.0: Use Instruction::rflags_undefined() instead
Use Instruction::rflags_undefined() instead
All flags that are undefined after executing the instruction.
This method returns a RflagsBits
value. See also rflags_modified()
.
👎 Deprecated since 1.11.0: Use Instruction::rflags_modified() instead
Use Instruction::rflags_modified() instead
All flags that are modified by the CPU. This is rflags_written() + rflags_cleared() + rflags_set() + rflags_undefined()
. This method returns a RflagsBits
value.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for InstructionInfo
impl Send for InstructionInfo
impl Sync for InstructionInfo
impl Unpin for InstructionInfo
impl UnwindSafe for InstructionInfo
Blanket Implementations
Mutably borrows from an owned value. Read more