pub enum FlowControl {
Next = 0,
UnconditionalBranch = 1,
IndirectBranch = 2,
ConditionalBranch = 3,
Return = 4,
Call = 5,
IndirectCall = 6,
Interrupt = 7,
XbeginXabortXend = 8,
Exception = 9,
}
Expand description
Control flow
Variants§
Next = 0
The next instruction that will be executed is the next instruction in the instruction stream
UnconditionalBranch = 1
It’s an unconditional branch instruction: JMP NEAR
, JMP FAR
IndirectBranch = 2
It’s an unconditional indirect branch: JMP NEAR reg
, JMP NEAR [mem]
, JMP FAR [mem]
ConditionalBranch = 3
It’s a conditional branch instruction: Jcc SHORT
, Jcc NEAR
, LOOP
, LOOPcc
, JRCXZ
, JKccD SHORT
, JKccD NEAR
Return = 4
It’s a return instruction: RET NEAR
, RET FAR
, IRET
, SYSRET
, SYSEXIT
, RSM
, SKINIT
, RDM
, UIRET
Call = 5
It’s a call instruction: CALL NEAR
, CALL FAR
, SYSCALL
, SYSENTER
, VMLAUNCH
, VMRESUME
, VMCALL
, VMMCALL
, VMGEXIT
, VMRUN
, TDCALL
, SEAMCALL
, SEAMRET
IndirectCall = 6
It’s an indirect call instruction: CALL NEAR reg
, CALL NEAR [mem]
, CALL FAR [mem]
Interrupt = 7
It’s an interrupt instruction: INT n
, INT3
, INT1
, INTO
, SMINT
, DMINT
XbeginXabortXend = 8
It’s XBEGIN
Exception = 9
It’s an invalid instruction, eg. Code::INVALID
, UD0
, UD1
, UD2
Implementations§
Source§impl FlowControl
impl FlowControl
Sourcepub fn values() -> impl Iterator<Item = FlowControl> + DoubleEndedIterator + ExactSizeIterator + FusedIterator
pub fn values() -> impl Iterator<Item = FlowControl> + DoubleEndedIterator + ExactSizeIterator + FusedIterator
Iterates over all FlowControl
enum values
Trait Implementations§
Source§impl Clone for FlowControl
impl Clone for FlowControl
Source§fn clone(&self) -> FlowControl
fn clone(&self) -> FlowControl
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more