#[repr(u8)]pub enum OpCode {
Show 85 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,
ShlI = 32,
ShrI = 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,
GetVarg = 81,
ErrNNil = 82,
VarargPrep = 83,
ExtraArg = 84,
}Expand description
Complete Lua 5.5 Opcode Set (86 opcodes) Based on lopcodes.h from Lua 5.5.0
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
ShlI = 32
ShrI = 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
GetVarg = 81
ErrNNil = 82
VarargPrep = 83
ExtraArg = 84
Implementations§
Source§impl OpCode
impl OpCode
pub fn from_u8(byte: u8) -> Self
Sourcepub fn uses_top(self) -> bool
pub fn uses_top(self) -> bool
Check if instruction uses “top” (IT mode - In Top) These instructions depend on the value of ‘top’ from previous instruction For all other instructions, top should be reset to base + nactvar
From Lua 5.5 lopcodes.c:
- CALL: IT=1 (uses top for vararg count)
- TAILCALL: IT=1
- RETURN: IT=1 (uses top for return count)
- SETLIST: IT=1 (uses top for list size)
- VARARGPREP: IT=1 (sets up varargs)
Trait Implementations§
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