pub enum TraceOp {
Show 30 variants
LoadConst {
dest: Register,
value: Value,
},
Move {
dest: Register,
src: Register,
},
Add {
dest: Register,
lhs: Register,
rhs: Register,
lhs_type: ValueType,
rhs_type: ValueType,
},
Sub {
dest: Register,
lhs: Register,
rhs: Register,
lhs_type: ValueType,
rhs_type: ValueType,
},
Mul {
dest: Register,
lhs: Register,
rhs: Register,
lhs_type: ValueType,
rhs_type: ValueType,
},
Div {
dest: Register,
lhs: Register,
rhs: Register,
lhs_type: ValueType,
rhs_type: ValueType,
},
Mod {
dest: Register,
lhs: Register,
rhs: Register,
lhs_type: ValueType,
rhs_type: ValueType,
},
Neg {
dest: Register,
src: Register,
},
Eq {
dest: Register,
lhs: Register,
rhs: Register,
},
Ne {
dest: Register,
lhs: Register,
rhs: Register,
},
Lt {
dest: Register,
lhs: Register,
rhs: Register,
},
Le {
dest: Register,
lhs: Register,
rhs: Register,
},
Gt {
dest: Register,
lhs: Register,
rhs: Register,
},
Ge {
dest: Register,
lhs: Register,
rhs: Register,
},
And {
dest: Register,
lhs: Register,
rhs: Register,
},
Or {
dest: Register,
lhs: Register,
rhs: Register,
},
Not {
dest: Register,
src: Register,
},
Concat {
dest: Register,
lhs: Register,
rhs: Register,
},
GetIndex {
dest: Register,
array: Register,
index: Register,
},
ArrayLen {
dest: Register,
array: Register,
},
GuardNativeFunction {
register: Register,
function: TracedNativeFn,
},
CallNative {
dest: Register,
callee: Register,
function: TracedNativeFn,
first_arg: Register,
arg_count: u8,
},
CallMethod {
dest: Register,
object: Register,
method_name: String,
first_arg: Register,
arg_count: u8,
},
GetField {
dest: Register,
object: Register,
field_name: String,
field_index: Option<usize>,
value_type: Option<ValueType>,
is_weak: bool,
},
SetField {
object: Register,
field_name: String,
value: Register,
field_index: Option<usize>,
value_type: Option<ValueType>,
is_weak: bool,
},
NewStruct {
dest: Register,
struct_name: String,
field_names: Vec<String>,
field_registers: Vec<Register>,
},
Guard {
register: Register,
expected_type: ValueType,
},
GuardLoopContinue {
condition_register: Register,
bailout_ip: usize,
},
NestedLoopCall {
function_idx: usize,
loop_start_ip: usize,
bailout_ip: usize,
},
Return {
value: Option<Register>,
},
}Variants§
LoadConst
Move
Add
Sub
Mul
Div
Mod
Neg
Eq
Ne
Lt
Le
Gt
Ge
And
Or
Not
Concat
GetIndex
ArrayLen
GuardNativeFunction
CallNative
CallMethod
GetField
Fields
SetField
Fields
NewStruct
Guard
GuardLoopContinue
NestedLoopCall
Return
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TraceOp
impl !RefUnwindSafe for TraceOp
impl !Send for TraceOp
impl !Sync for TraceOp
impl Unpin for TraceOp
impl !UnwindSafe for TraceOp
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