Enum jazz::opcodes::Instruction
source · pub enum Instruction {
Show 25 variants
LoadInt(usize, i32),
LoadLong(usize, i64),
LoadFloat(usize, f32),
LoadDouble(usize, f64),
LoadConst(usize, usize),
LoadGlobal(usize, usize),
LoadAt(usize, usize, usize),
LoadSuper(usize, usize, usize),
Move(usize, usize),
Store(usize, usize, usize),
StoreAt(usize, usize, usize),
StoreGlobal(usize, usize),
Jump(usize),
JumpF(usize, usize),
JumpT(usize, usize),
PushArg(usize),
Call(usize, usize, usize),
Add(usize, usize, usize),
Sub(usize, usize, usize),
Mul(usize, usize, usize),
Div(usize, usize, usize),
Gt(usize, usize, usize),
Lt(usize, usize, usize),
Ret0,
Ret(usize),
}
Variants§
LoadInt(usize, i32)
LoadInt R(A) = B Loading integer value B to register A
LoadLong(usize, i64)
LoadLong R(A) = B Loading long value B to register A
LoadFloat(usize, f32)
LoadFloat R(A) = B Loading float value B to register A
LoadDouble(usize, f64)
LoadDouble R(A) = B Loading double value B to register A
LoadConst(usize, usize)
LoadConst R(A) = C(B) Load constant from object pool to register A
LoadGlobal(usize, usize)
LoadGlobal R(A) = G(B) Load global value B into register A
LoadAt(usize, usize, usize)
LoadAt R(A) = R(B)[C] Load C from B and store in A
LoadSuper(usize, usize, usize)
LoadSuper R(A) = R(B)C Load C from B and store in A
Move(usize, usize)
Move R(A) = R(B) Move register
Store(usize, usize, usize)
Store R(B)[C] = A Store A into R(B)[C]
StoreAt(usize, usize, usize)
StoreGlobal(usize, usize)
StoreGlobal G(A) = R(B) Store global
Jump(usize)
Jump IP
JumpF(usize, usize)
Jump (R(A) == false ? ip = B : continue)
JumpT(usize, usize)
Jump (R(A) == true ? ip == B : continue)
PushArg(usize)
Push value from R(A) to arguments stack
Call(usize, usize, usize)
R(A) = B(Args), C - Arg count, args poped from arg stack
Add(usize, usize, usize)
Add R(A) = R(B) + R(C)
Sub(usize, usize, usize)
Sub R(A) = R(B) - R(C)
Mul(usize, usize, usize)
Mul R(A) = R(B) * R(C)
Div(usize, usize, usize)
Div R(A) = R(B) / R(C)
Gt(usize, usize, usize)
Gt R(A) = R(B) > R(C)
Lt(usize, usize, usize)
Lt R(A) = R(B) < R(C)
Ret0
Ret0 return null value
Ret(usize)
Ret R(A) return value from R(A)
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 more