66 lines
848 B
Rust
66 lines
848 B
Rust
|
#[derive (Debug, PartialEq)]
|
||
|
pub enum Instruction {
|
||
|
Add (u8, u8, u8),
|
||
|
|
||
|
Call (u8, u8, u8),
|
||
|
Closure (u8, u32),
|
||
|
|
||
|
// Equals Constant?
|
||
|
EqK (u8, u8, bool),
|
||
|
|
||
|
ExtraArg (u32),
|
||
|
|
||
|
// Get Immediate?
|
||
|
GetI (u8, u8, u8),
|
||
|
|
||
|
// Get Table, Upvalue
|
||
|
GetTabUp (u8, u8, u8),
|
||
|
|
||
|
GetUpVal (u8, u8),
|
||
|
|
||
|
// Jump
|
||
|
Jmp (i32),
|
||
|
|
||
|
// Load F (Float?)
|
||
|
LoadF (u8, i32),
|
||
|
|
||
|
LoadFalse (u8),
|
||
|
|
||
|
// Load Integer?
|
||
|
LoadI (u8, i32),
|
||
|
|
||
|
// Load Constant
|
||
|
LoadK (u8, u32),
|
||
|
|
||
|
LoadNil (u8),
|
||
|
|
||
|
LoadTrue (u8),
|
||
|
|
||
|
// MetaMethod, Binary
|
||
|
MmBin (u8, u8, u8),
|
||
|
|
||
|
Move (u8, u8),
|
||
|
|
||
|
Mul (u8, u8, u8),
|
||
|
|
||
|
NewTable (u8),
|
||
|
|
||
|
Not (u8, u8),
|
||
|
|
||
|
// (A, B, _C, k) Return B - 1 registers starting with A
|
||
|
Return (u8, u8, u8, bool),
|
||
|
|
||
|
Return0,
|
||
|
|
||
|
// Return just one register
|
||
|
Return1 (u8),
|
||
|
|
||
|
SetTabUp (u8, u8, u8),
|
||
|
|
||
|
TailCall (u8, u8, u8, bool),
|
||
|
|
||
|
Test (u8, bool),
|
||
|
|
||
|
VarArgPrep (i32),
|
||
|
}
|