Enum jazz_vm::opcode::OpCode [−][src]
pub enum OpCode { Nop, LoadNull, LoadInt(i64), LoadFloat(f64), LoadString(String), LoadBool(bool), LoadThis, Pop, Dup, InitLocal(usize), GetLocal(usize), SetLocal(usize), GetArgument(usize), GetNArguments, GetVariable, SetVariable, GetStatic, SetStatic, GetField, SetField, Call(usize), CallField(usize), Branch(usize), ConditionalBranch(usize, usize), GotoIfTrue(usize), GotoIfFalse(usize), Goto(usize), Return, Add, Sub, Mul, Div, Mod, Pow, IntAdd, IntSub, IntMul, IntDiv, IntMod, IntPow, FloatAdd, FloatSub, FloatMul, FloatDiv, FloatPowi, FloatPowf, StringAdd, CastToFloat, CastToInt, CastToBool, CastToString, And, Or, Not, TestLt, TestLe, TestEq, TestNe, TestGe, TestGt, Rotate2, Rotate3, RotateReverse(usize), Select(SelectType, Vec<OpCode>, Vec<OpCode>), Rt(RtOpCode), }
Инструции виртуальной машины.
P.S Rt
инструкции используются только для внутреннего использования оптимизатором
и они не будут проходить проверку кода при вызове функции
Variants
Nop
LoadNull
LoadInt(i64)
LoadFloat(f64)
LoadString(String)
LoadBool(bool)
LoadThis
Pop
Dup
InitLocal(usize)
GetLocal(usize)
SetLocal(usize)
GetArgument(usize)
GetNArguments
GetVariable
SetVariable
GetStatic
SetStatic
GetField
SetField
Call(usize)
CallField(usize)
Branch(usize)
ConditionalBranch(usize, usize)
GotoIfTrue(usize)
GotoIfFalse(usize)
Goto(usize)
Return
Add
Sub
Mul
Div
Mod
Pow
IntAdd
IntSub
IntMul
IntDiv
IntMod
IntPow
FloatAdd
FloatSub
FloatMul
FloatDiv
FloatPowi
FloatPowf
StringAdd
CastToFloat
CastToInt
CastToBool
CastToString
And
Or
Not
TestLt
TestLe
TestEq
TestNe
TestGe
TestGt
Rotate2
Rotate3
RotateReverse(usize)
Select(SelectType, Vec<OpCode>, Vec<OpCode>)
Rt(RtOpCode)
Methods
impl OpCode
[src]
impl OpCode
pub fn modifies_control_flow(&self) -> bool
[src]
pub fn modifies_control_flow(&self) -> bool
pub fn validate(
&self,
allow_modify_control_flow: bool
) -> Result<(), ValidateError>
[src]
pub fn validate(
&self,
allow_modify_control_flow: bool
) -> Result<(), ValidateError>
pub fn from_value(v: Value) -> OpCode
[src]
pub fn from_value(v: Value) -> OpCode
pub fn to_value(&self) -> Option<Value>
[src]
pub fn to_value(&self) -> Option<Value>
pub fn get_stack_depth_change(&self) -> (usize, usize)
[src]
pub fn get_stack_depth_change(&self) -> (usize, usize)
Trait Implementations
impl Clone for OpCode
[src]
impl Clone for OpCode
fn clone(&self) -> OpCode
[src]
fn clone(&self) -> OpCode
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0
[src]Performs copy-assignment from source
. Read more
impl Debug for OpCode
[src]
impl Debug for OpCode
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl PartialEq for OpCode
[src]
impl PartialEq for OpCode