pub enum Instruction {
Show 53 variants
Clear(usize),
Clone,
Swap,
Sp,
Pop,
Jump(LabelType),
JumpTrue(LabelType),
JumpFalse(LabelType),
GetLocalVariable(usize),
SetLocalVariable(usize),
Nil,
Boolean(bool),
Numeric(IntOrFloat),
String(Vec<u8>),
GetGlobal,
GetEnv,
TableInit(usize),
TableIndexInit,
TableInitLast(IntType),
TableIndex,
TableIndexSet,
FunctionInit(usize, usize),
FunctionUpvaluePushFromLocalVar(usize),
FunctionUpvaluePushFromUpvalue(usize),
FunctionUpvalue(usize),
FunctionUpvalueSet(usize),
BinaryAdd,
BinarySub,
BinaryMul,
BinaryDiv,
BinaryFloorDiv,
BinaryMod,
BinaryPow,
BinaryConcat,
BinaryBitwiseAnd,
BinaryBitwiseOr,
BinaryBitwiseXor,
BinaryShiftLeft,
BinaryShiftRight,
BinaryEqual,
BinaryNotEqual,
BinaryLessThan,
BinaryLessEqual,
BinaryGreaterThan,
BinaryGreaterEqual,
UnaryMinus,
UnaryBitwiseNot,
UnaryLength,
UnaryLogicalNot,
FunctionCall(Option<usize>),
Return,
GetVariadic(Option<usize>),
AdjustMultire(usize),
}Variants§
Clear(usize)
clear i’th local variable to Nil
Clone
clone top of the data_stack and push it
Swap
swap top two elements of stack
Sp
push current length of data_stack to usize_stack
Pop
Jump(LabelType)
jump to label
JumpTrue(LabelType)
pops data_stack and jump to label if stack_top is true.
JumpFalse(LabelType)
pops data_stack and jump to label if stack_top is false
GetLocalVariable(usize)
get i’th local variable and push the value to stack_top
SetLocalVariable(usize)
pops data_stack and set i’th local variable to the value.
If i’th local variable is Ref, the internal value will be set.
Nil
push nil
Boolean(bool)
push bool
Numeric(IntOrFloat)
push int or float
String(Vec<u8>)
push string
GetGlobal
push _G
GetEnv
push _ENV
TableInit(usize)
init new table with capacity
TableIndexInit
table -> key -> value -> stack_top. table must not be popped.
TableInitLast(IntType)
TableIndex
table -> index -> stack_top
TableIndexSet
value -> table -> index -> stack_top
FunctionInit(usize, usize)
function_id, number of upvalues
FunctionUpvaluePushFromLocalVar(usize)
func -> top. src_stack_id
FunctionUpvaluePushFromUpvalue(usize)
src_upvalue_id
FunctionUpvalue(usize)
get i’th upvalue of current function
FunctionUpvalueSet(usize)
set i’th upvalue of current function
BinaryAdd
BinarySub
BinaryMul
BinaryDiv
BinaryFloorDiv
BinaryMod
BinaryPow
BinaryConcat
BinaryBitwiseAnd
BinaryBitwiseOr
BinaryBitwiseXor
BinaryShiftLeft
BinaryShiftRight
BinaryEqual
BinaryNotEqual
BinaryLessThan
BinaryLessEqual
BinaryGreaterThan
BinaryGreaterEqual
UnaryMinus
UnaryBitwiseNot
UnaryLength
UnaryLogicalNot
FunctionCall(Option<usize>)
return expected can be 0. function -> args -> top
Return
GetVariadic(Option<usize>)
Invalid call ( using ... in a non-variadic function ) was filtered out in parser.
AdjustMultire(usize)
Trait Implementations§
source§impl Clone for Instruction
impl Clone for Instruction
source§fn clone(&self) -> Instruction
fn clone(&self) -> Instruction
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for Instruction
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)