#[repr(u8)]pub enum OpCode {
Show 83 variants
Move = 0,
LoadI = 1,
LoadF = 2,
LoadK = 3,
LoadKX = 4,
LoadFalse = 5,
LFalseSkip = 6,
LoadTrue = 7,
LoadNil = 8,
GetUpVal = 9,
SetUpVal = 10,
GetTabUp = 11,
GetTable = 12,
GetI = 13,
GetField = 14,
SetTabUp = 15,
SetTable = 16,
SetI = 17,
SetField = 18,
NewTable = 19,
Self_ = 20,
AddI = 21,
AddK = 22,
SubK = 23,
MulK = 24,
ModK = 25,
PowK = 26,
DivK = 27,
IDivK = 28,
BAndK = 29,
BOrK = 30,
BXorK = 31,
ShrI = 32,
ShlI = 33,
Add = 34,
Sub = 35,
Mul = 36,
Mod = 37,
Pow = 38,
Div = 39,
IDiv = 40,
BAnd = 41,
BOr = 42,
BXor = 43,
Shl = 44,
Shr = 45,
MmBin = 46,
MmBinI = 47,
MmBinK = 48,
Unm = 49,
BNot = 50,
Not = 51,
Len = 52,
Concat = 53,
Close = 54,
Tbc = 55,
Jmp = 56,
Eq = 57,
Lt = 58,
Le = 59,
EqK = 60,
EqI = 61,
LtI = 62,
LeI = 63,
GtI = 64,
GeI = 65,
Test = 66,
TestSet = 67,
Call = 68,
TailCall = 69,
Return = 70,
Return0 = 71,
Return1 = 72,
ForLoop = 73,
ForPrep = 74,
TForPrep = 75,
TForCall = 76,
TForLoop = 77,
SetList = 78,
Closure = 79,
VarArg = 80,
VarArgPrep = 81,
ExtraArg = 82,
}Expand description
All opcodes for the Lua 5.4 virtual machine.
ORDER OP — must match lopcodes.h exactly.
Variants§
Move = 0
LoadI = 1
LoadF = 2
LoadK = 3
LoadKX = 4
LoadFalse = 5
LFalseSkip = 6
LoadTrue = 7
LoadNil = 8
GetUpVal = 9
SetUpVal = 10
GetTabUp = 11
GetTable = 12
GetI = 13
GetField = 14
SetTabUp = 15
SetTable = 16
SetI = 17
SetField = 18
NewTable = 19
Self_ = 20
AddI = 21
AddK = 22
SubK = 23
MulK = 24
ModK = 25
PowK = 26
DivK = 27
IDivK = 28
BAndK = 29
BOrK = 30
BXorK = 31
ShrI = 32
ShlI = 33
Add = 34
Sub = 35
Mul = 36
Mod = 37
Pow = 38
Div = 39
IDiv = 40
BAnd = 41
BOr = 42
BXor = 43
Shl = 44
Shr = 45
MmBin = 46
MmBinI = 47
MmBinK = 48
Unm = 49
BNot = 50
Not = 51
Len = 52
Concat = 53
Close = 54
Tbc = 55
Jmp = 56
Eq = 57
Lt = 58
Le = 59
EqK = 60
EqI = 61
LtI = 62
LeI = 63
GtI = 64
GeI = 65
Test = 66
TestSet = 67
Call = 68
TailCall = 69
Return = 70
Return0 = 71
Return1 = 72
ForLoop = 73
ForPrep = 74
TForPrep = 75
TForCall = 76
TForLoop = 77
SetList = 78
Closure = 79
VarArg = 80
VarArgPrep = 81
ExtraArg = 82
Implementations§
Source§impl OpCode
impl OpCode
Sourcepub fn from_u32(v: u32) -> Option<OpCode>
pub fn from_u32(v: u32) -> Option<OpCode>
Convert a raw u32 opcode field value to an OpCode.
Returns None if v >= NUM_OPCODES.
TODO(port): replace explicit match with a safe transmute or num_enum
crate derive once Phase B settles the dependency policy. The match is
correct but mechanical; 83 arms is noise at compile-time and runtime.
Trait Implementations§
Source§impl Ord for OpCode
impl Ord for OpCode
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for OpCode
impl PartialOrd for OpCode
impl Copy for OpCode
impl Eq for OpCode
impl StructuralPartialEq for OpCode
Auto Trait Implementations§
impl Freeze for OpCode
impl RefUnwindSafe for OpCode
impl Send for OpCode
impl Sync for OpCode
impl Unpin for OpCode
impl UnsafeUnpin for OpCode
impl UnwindSafe for OpCode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more