Struct vtil_parser::InstructionBuilder[][src]

pub struct InstructionBuilder<'a> { /* fields omitted */ }

Builder for VTIL instructions in an associated BasicBlock

Implementations

impl<'a> InstructionBuilder<'a>[src]

pub fn from(basic_block: &'a mut BasicBlock) -> InstructionBuilder<'a>[src]

Build an InstructionBuilder from an existing BasicBlock

pub fn shift_sp(&mut self, offset: i64)[src]

Queues a stack shift

pub fn push(&mut self, op1: Operand) -> &mut Self[src]

Pushes an operand up the stack queueing the shift in the stack pointer

pub fn pop(&mut self, op1: RegisterDesc) -> &mut Self[src]

Pops an operand from the stack queueing the shift in the stack pointer

pub fn pushf(&mut self) -> &mut Self[src]

Push flags register

pub fn popf(&mut self) -> &mut Self[src]

Pop flags register

pub fn mov(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Mov

pub fn movsx(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Movsx

pub fn str(
    &mut self,
    op1: RegisterDesc,
    op2: ImmediateDesc,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Str

pub fn ldd(
    &mut self,
    op1: RegisterDesc,
    op2: RegisterDesc,
    op3: ImmediateDesc
) -> &mut Self
[src]

Insert an Op::Ldd

pub fn neg(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Neg

pub fn add(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Add

pub fn sub(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Sub

pub fn mul(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Mul

pub fn mulhi(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Mulhi

pub fn imul(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Imul

pub fn imulhi(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Imulhi

pub fn div(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Div

pub fn rem(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Rem

pub fn idiv(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Idiv

pub fn irem(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Irem

pub fn popcnt(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Popcnt

pub fn bsf(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Bsf

pub fn bsr(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Bsr

pub fn not(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Not

pub fn shr(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Shr

pub fn shl(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Shl

pub fn xor(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Xor

pub fn or(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Or

pub fn and(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::And

pub fn ror(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Ror

pub fn rol(&mut self, op1: RegisterDesc, op2: Operand) -> &mut Self[src]

Insert an Op::Rol

pub fn tg(&mut self, op1: RegisterDesc, op2: Operand, op3: Operand) -> &mut Self[src]

Insert an Op::Tg

pub fn tge(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tge

pub fn te(&mut self, op1: RegisterDesc, op2: Operand, op3: Operand) -> &mut Self[src]

Insert an Op::Te

pub fn tne(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tne

pub fn tl(&mut self, op1: RegisterDesc, op2: Operand, op3: Operand) -> &mut Self[src]

Insert an Op::Tl

pub fn tle(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tle

pub fn tug(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tug

pub fn tuge(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tuge

pub fn tul(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tul

pub fn tule(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Tule

pub fn ifs(
    &mut self,
    op1: RegisterDesc,
    op2: Operand,
    op3: Operand
) -> &mut Self
[src]

Insert an Op::Ifs

pub fn js(&mut self, op1: RegisterDesc, op2: Operand, op3: Operand) -> &mut Self[src]

Insert an Op::Js

pub fn jmp(&mut self, op1: Operand) -> &mut Self[src]

Insert an Op::Jmp

pub fn vexit(&mut self, op1: Operand) -> &mut Self[src]

Insert an Op::Vexit

pub fn vxcall(&mut self, op1: Operand) -> &mut Self[src]

Insert an Op::Vxcall

pub fn nop(&mut self) -> &mut Self[src]

Insert an Op::Nop

pub fn sfence(&mut self) -> &mut Self[src]

Insert an Op::Sfence

pub fn lfence(&mut self) -> &mut Self[src]

Insert an Op::Lfence

pub fn vemit(&mut self, op1: ImmediateDesc) -> &mut Self[src]

Insert an Op::Vemit

pub fn vpinr(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Vpinr

pub fn vpinw(&mut self, op1: RegisterDesc) -> &mut Self[src]

Insert an Op::Vpinw

pub fn vpinrm(
    &mut self,
    op1: RegisterDesc,
    op2: ImmediateDesc,
    op3: ImmediateDesc
) -> &mut Self
[src]

Insert an Op::Vpinrm

pub fn vpinwm(
    &mut self,
    op1: RegisterDesc,
    op2: ImmediateDesc,
    op3: ImmediateDesc
) -> &mut Self
[src]

Insert an Op::Vpinwm

Auto Trait Implementations

impl<'a> RefUnwindSafe for InstructionBuilder<'a>

impl<'a> Send for InstructionBuilder<'a>

impl<'a> Sync for InstructionBuilder<'a>

impl<'a> Unpin for InstructionBuilder<'a>

impl<'a> !UnwindSafe for InstructionBuilder<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.