Enum vtil_parser::Op [−][src]
pub enum Op {
Show variants
Mov(Operand, Operand),
Movsx(Operand, Operand),
Str(Operand, Operand, Operand),
Ldd(Operand, Operand, Operand),
Neg(Operand),
Add(Operand, Operand),
Sub(Operand, Operand),
Mul(Operand, Operand),
Mulhi(Operand, Operand),
Imul(Operand, Operand),
Imulhi(Operand, Operand),
Div(Operand, Operand, Operand),
Rem(Operand, Operand, Operand),
Idiv(Operand, Operand, Operand),
Irem(Operand, Operand, Operand),
Popcnt(Operand),
Bsf(Operand),
Bsr(Operand),
Not(Operand),
Shr(Operand, Operand),
Shl(Operand, Operand),
Xor(Operand, Operand),
Or(Operand, Operand),
And(Operand, Operand),
Ror(Operand, Operand),
Rol(Operand, Operand),
Tg(Operand, Operand, Operand),
Tge(Operand, Operand, Operand),
Te(Operand, Operand, Operand),
Tne(Operand, Operand, Operand),
Tl(Operand, Operand, Operand),
Tle(Operand, Operand, Operand),
Tug(Operand, Operand, Operand),
Tuge(Operand, Operand, Operand),
Tul(Operand, Operand, Operand),
Tule(Operand, Operand, Operand),
Ifs(Operand, Operand, Operand),
Js(Operand, Operand, Operand),
Jmp(Operand),
Vexit(Operand),
Vxcall(Operand),
Nop,
Sfence,
Lfence,
Vemit(Operand),
Vpinr(Operand),
Vpinw(Operand),
Vpinrm(Operand, Operand, Operand),
Vpinwm(Operand, Operand, Operand),
}VTIL operator and operands
Variants
OP1 = ZX(OP2)
OP1 = SX(OP2)
[OP1+OP2] <= OP3
OP1 <= [OP2+OP3]
Neg(Operand)OP1 = -OP1
OP1 = OP1 + OP2
OP1 = OP1 - OP2
OP1 = OP1 * OP2
OP1 = [OP1 * OP2]>>N
OP1 = OP1 * OP2 (Signed)
OP1 = [OP1 * OP2]>>N (Signed)
OP1 = [OP2:OP1] / OP3
OP1 = [OP2:OP1] % OP3
OP1 = [OP2:OP1] / OP3 (Signed)
OP1 = [OP2:OP1] % OP3 (Signed)
Popcnt(Operand)OP1 = popcnt OP1
Bsf(Operand)OP1 = OP1 ? BitScanForward OP1 + 1 : 0
Bsr(Operand)OP1 = OP1 ? BitScanReverse OP1 + 1 : 0
Not(Operand)OP1 = ~OP1
OP1 >>= OP2
OP1 <<= OP2
OP1 ^= OP2
OP1 |= OP2
OP1 &= OP2
OP1 = (OP1>>OP2) | (OP1<<(N-OP2))
OP1 = (OP1<<OP2) | (OP1>>(N-OP2))
OP1 = OP2 > OP3
OP1 = OP2 >= OP3
OP1 = OP2 == OP3
OP1 = OP2 != OP3
OP1 = OP2 < OP3
OP1 = OP2 <= OP3
OP1 = OP2 <= OP3
OP1 = OP2 u>= OP3
OP1 = OP2 u< OP3
OP1 = OP2 u<= OP3
OP1 = OP2 ? OP3 : 0
Jumps to OP1 ? OP2 : OP3, continues virtual execution
Jmp(Operand)Jumps to OP1, continues virtual execution
Vexit(Operand)Jumps to OP1, continues real execution
Vxcall(Operand)Calls into OP1, pauses virtual execution until the call returns
Placeholder
Assumes all memory is read from
Assumes all memory is written to
Vemit(Operand)Emits the opcode as is to the final instruction stream
Vpinr(Operand)Pins the register for read
Vpinw(Operand)Pins the register for write
Pins the memory location for read, with size = OP3
Pins the memory location for write, with size = OP3