#[repr(u8)]pub enum Op {
Show 51 variants
Const = 0,
Nil = 1,
True = 2,
False = 3,
Pop = 4,
Dup = 5,
LoadLocal = 6,
StoreLocal = 7,
LoadUpvalue = 8,
StoreUpvalue = 9,
LoadGlobal = 10,
StoreGlobal = 11,
DefineGlobal = 12,
Jump = 13,
JumpIfFalse = 14,
JumpIfTrue = 15,
Call = 16,
TailCall = 17,
Return = 18,
MakeClosure = 19,
CallNative = 20,
MakeList = 21,
MakeVector = 22,
MakeMap = 23,
MakeHashMap = 24,
Throw = 25,
Add = 26,
Sub = 27,
Mul = 28,
Div = 29,
Negate = 30,
Not = 31,
Eq = 32,
Lt = 33,
Gt = 34,
Le = 35,
Ge = 36,
AddInt = 37,
SubInt = 38,
MulInt = 39,
LtInt = 40,
EqInt = 41,
LoadLocal0 = 42,
LoadLocal1 = 43,
LoadLocal2 = 44,
LoadLocal3 = 45,
StoreLocal0 = 46,
StoreLocal1 = 47,
StoreLocal2 = 48,
StoreLocal3 = 49,
CallGlobal = 50,
}Expand description
Bytecode opcodes for the Sema VM.
Stack-based: operands are pushed/popped from the value stack. Variable-length encoding: opcode (1 byte) + operands (u16/u32/i32).
Variants§
Const = 0
Nil = 1
True = 2
False = 3
Pop = 4
Dup = 5
LoadLocal = 6
StoreLocal = 7
LoadUpvalue = 8
StoreUpvalue = 9
LoadGlobal = 10
StoreGlobal = 11
DefineGlobal = 12
Jump = 13
JumpIfFalse = 14
JumpIfTrue = 15
Call = 16
TailCall = 17
Return = 18
MakeClosure = 19
CallNative = 20
MakeList = 21
MakeVector = 22
MakeMap = 23
MakeHashMap = 24
Throw = 25
Add = 26
Sub = 27
Mul = 28
Div = 29
Negate = 30
Not = 31
Eq = 32
Lt = 33
Gt = 34
Le = 35
Ge = 36
AddInt = 37
SubInt = 38
MulInt = 39
LtInt = 40
EqInt = 41
LoadLocal0 = 42
LoadLocal1 = 43
LoadLocal2 = 44
LoadLocal3 = 45
StoreLocal0 = 46
StoreLocal1 = 47
StoreLocal2 = 48
StoreLocal3 = 49
CallGlobal = 50
Implementations§
Trait Implementations§
impl Copy for Op
impl Eq for Op
impl StructuralPartialEq for Op
Auto Trait Implementations§
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnsafeUnpin for Op
impl UnwindSafe for Op
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.