pub enum Opcode {
Show 72 variants
Copy = 1,
Load = 2,
Store = 3,
Branch = 4,
CBranch = 5,
BranchInd = 6,
Call = 7,
CallInd = 8,
CallOther = 9,
Return = 10,
IntEqual = 11,
IntNotEqual = 12,
IntSLess = 13,
IntSLessEqual = 14,
IntLess = 15,
IntLessEqual = 16,
IntZExt = 17,
IntSExt = 18,
IntAdd = 19,
IntSub = 20,
IntCarry = 21,
IntSCarry = 22,
IntSBorrow = 23,
Int2Comp = 24,
IntNegate = 25,
IntXor = 26,
IntAnd = 27,
IntOr = 28,
IntLeft = 29,
IntRight = 30,
IntSRight = 31,
IntMult = 32,
IntDiv = 33,
IntSDiv = 34,
IntRem = 35,
IntSRem = 36,
BoolNegate = 37,
BoolXor = 38,
BoolAnd = 39,
BoolOr = 40,
FloatEqual = 41,
FloatNotEqual = 42,
FloatLess = 43,
FloatLessEqual = 44,
FloatNan = 46,
FloatAdd = 47,
FloatDiv = 48,
FloatMult = 49,
FloatSub = 50,
FloatNeg = 51,
FloatAbs = 52,
FloatSqrt = 53,
FloatInt2Float = 54,
FloatFloat2Float = 55,
FloatTrunc = 56,
FloatCeil = 57,
FloatFloor = 58,
FloatRound = 59,
MultiEqual = 60,
Indirect = 61,
Piece = 62,
SubPiece = 63,
Cast = 64,
PtrAdd = 65,
PtrSub = 66,
SegmentOp = 67,
CPoolRef = 68,
New = 69,
Insert = 70,
Extract = 71,
PopCount = 72,
Max = 73,
}
Variants§
Copy = 1
Load = 2
< Copy one operand to another
Store = 3
< Load from a pointer into a specified address space
Branch = 4
< Store at a pointer into a specified address space
CBranch = 5
< Always branch
BranchInd = 6
< Conditional branch
Call = 7
< Indirect branch (jumptable)
CallInd = 8
< Call to an absolute address
CallOther = 9
< Call through an indirect address
Return = 10
< User-defined operation
IntEqual = 11
< Return from subroutine
IntNotEqual = 12
< Integer comparison, equality (==)
IntSLess = 13
< Integer comparison, in-equality (!=)
IntSLessEqual = 14
< Integer comparison, signed less-than (<)
IntLess = 15
< Integer comparison, signed less-than-or-equal (<=)
IntLessEqual = 16
< Integer comparison, unsigned less-than (<)
IntZExt = 17
< Integer comparison, unsigned less-than-or-equal (<=)
IntSExt = 18
< Zero extension
IntAdd = 19
< Sign extension
IntSub = 20
< Addition, signed or unsigned (+)
IntCarry = 21
< Subtraction, signed or unsigned (-)
IntSCarry = 22
< Test for unsigned carry
IntSBorrow = 23
< Test for signed carry
Int2Comp = 24
< Test for signed borrow
IntNegate = 25
< Twos complement
IntXor = 26
< Logical/bitwise negation (~)
IntAnd = 27
< Logical/bitwise exclusive-or (^)
IntOr = 28
< Logical/bitwise and (&)
IntLeft = 29
< Logical/bitwise or (|)
IntRight = 30
< Left shift (<<)
IntSRight = 31
< Right shift, logical (>>)
IntMult = 32
< Right shift, arithmetic (>>)
IntDiv = 33
< Integer multiplication, signed and unsigned (*)
IntSDiv = 34
< Integer division, unsigned (/)
IntRem = 35
< Integer division, signed (/)
IntSRem = 36
< Remainder/modulo, unsigned (%)
BoolNegate = 37
< Remainder/modulo, signed (%)
BoolXor = 38
< Boolean negate (!)
BoolAnd = 39
< Boolean exclusive-or (^^)
BoolOr = 40
< Boolean and (&&)
FloatEqual = 41
< Boolean or (||)
FloatNotEqual = 42
< Floating-point comparison, equality (==)
FloatLess = 43
< Floating-point comparison, in-equality (!=)
FloatLessEqual = 44
< Floating-point comparison, less-than (<)
FloatNan = 46
< Floating-point comparison, less-than-or-equal (<=)
FloatAdd = 47
< Not-a-number test (NaN)
FloatDiv = 48
< Floating-point addition (+)
FloatMult = 49
< Floating-point division (/)
FloatSub = 50
< Floating-point multiplication (*)
FloatNeg = 51
< Floating-point subtraction (-)
FloatAbs = 52
< Floating-point negation (-)
FloatSqrt = 53
< Floating-point absolute value (abs)
FloatInt2Float = 54
< Floating-point square root (sqrt)
FloatFloat2Float = 55
< Convert an integer to a floating-point
FloatTrunc = 56
< Convert between different floating-point sizes
FloatCeil = 57
< Round towards zero
FloatFloor = 58
< Round towards +infinity
FloatRound = 59
< Round towards -infinity
MultiEqual = 60
< Round towards nearest
Indirect = 61
< Phi-node operator
Piece = 62
< Copy with an indirect effect
SubPiece = 63
< Concatenate
Cast = 64
< Truncate
PtrAdd = 65
< Cast from one data-type to another
PtrSub = 66
< Index into an array ([])
SegmentOp = 67
< Drill down to a sub-field (->)
CPoolRef = 68
< Look-up a \e segmented address
New = 69
< Recover a value from the \e constant \e pool
Insert = 70
< Allocate a new object (new)
Extract = 71
< Insert a bit-range
PopCount = 72
< Extract a bit-range
Max = 73
< Count the 1-bits
Implementations§
Trait Implementations§
Source§impl FromPrimitive for Opcode
impl FromPrimitive for Opcode
Source§fn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
i64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
u64
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
isize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
i8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
i16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
i32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
i128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read moreSource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
usize
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
u8
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
u16
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
u32
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned.Source§fn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
u128
to return an optional value of this type. If the
value cannot be represented by this type, then None
is returned. Read more