pub trait Opcode<'a>: Inject<'a> {
Show 139 methods
// Provided methods
fn call(&mut self, idx: FunctionID) -> &mut Self { ... }
fn return_stmt(&mut self) -> &mut Self { ... }
fn nop(&mut self) -> &mut Self { ... }
fn unreachable(&mut self) -> &mut Self { ... }
fn if_stmt(&mut self, block_type: BlockType) -> &mut Self { ... }
fn else_stmt(&mut self) -> &mut Self { ... }
fn end(&mut self) -> &mut Self { ... }
fn block(&mut self, block_type: BlockType) -> &mut Self { ... }
fn loop_stmt(&mut self, block_type: BlockType) -> &mut Self { ... }
fn br(&mut self, relative_depth: u32) -> &mut Self { ... }
fn br_if(&mut self, relative_depth: u32) -> &mut Self { ... }
fn local_get(&mut self, idx: LocalID) -> &mut Self { ... }
fn local_set(&mut self, idx: LocalID) -> &mut Self { ... }
fn local_tee(&mut self, idx: LocalID) -> &mut Self { ... }
fn i32_const(&mut self, value: i32) -> &mut Self { ... }
fn i32_add(&mut self) -> &mut Self { ... }
fn i32_sub(&mut self) -> &mut Self { ... }
fn i32_mul(&mut self) -> &mut Self { ... }
fn i32_div_signed(&mut self) -> &mut Self { ... }
fn i32_div_unsigned(&mut self) -> &mut Self { ... }
fn i32_rem_unsigned(&mut self) -> &mut Self { ... }
fn i32_rem_signed(&mut self) -> &mut Self { ... }
fn i32_and(&mut self) -> &mut Self { ... }
fn i32_or(&mut self) -> &mut Self { ... }
fn i32_xor(&mut self) -> &mut Self { ... }
fn i32_shl(&mut self) -> &mut Self { ... }
fn i32_shr_signed(&mut self) -> &mut Self { ... }
fn i32_shr_unsigned(&mut self) -> &mut Self { ... }
fn i32_rotl(&mut self) -> &mut Self { ... }
fn i32_rotr(&mut self) -> &mut Self { ... }
fn i32_eq(&mut self) -> &mut Self { ... }
fn i32_eqz(&mut self) -> &mut Self { ... }
fn i32_ne(&mut self) -> &mut Self { ... }
fn i32_lt_unsigned(&mut self) -> &mut Self { ... }
fn i32_lt_signed(&mut self) -> &mut Self { ... }
fn i32_gt_unsigned(&mut self) -> &mut Self { ... }
fn i32_gt_signed(&mut self) -> &mut Self { ... }
fn i32_lte_unsigned(&mut self) -> &mut Self { ... }
fn i32_lte_signed(&mut self) -> &mut Self { ... }
fn i32_gte_unsigned(&mut self) -> &mut Self { ... }
fn i32_gte_signed(&mut self) -> &mut Self { ... }
fn i32_wrap_i64(&mut self) -> &mut Self { ... }
fn i64_const(&mut self, value: i64) -> &mut Self { ... }
fn i64_add(&mut self) -> &mut Self { ... }
fn i64_sub(&mut self) -> &mut Self { ... }
fn i64_mul(&mut self) -> &mut Self { ... }
fn i64_div_signed(&mut self) -> &mut Self { ... }
fn i64_div_unsigned(&mut self) -> &mut Self { ... }
fn i64_rem_unsigned(&mut self) -> &mut Self { ... }
fn i64_rem_signed(&mut self) -> &mut Self { ... }
fn i64_and(&mut self) -> &mut Self { ... }
fn i64_or(&mut self) -> &mut Self { ... }
fn i64_xor(&mut self) -> &mut Self { ... }
fn i64_shl(&mut self) -> &mut Self { ... }
fn i64_shr_signed(&mut self) -> &mut Self { ... }
fn i64_shr_unsigned(&mut self) -> &mut Self { ... }
fn i64_rotl(&mut self) -> &mut Self { ... }
fn i64_rotr(&mut self) -> &mut Self { ... }
fn i64_eq(&mut self) -> &mut Self { ... }
fn i64_eqz(&mut self) -> &mut Self { ... }
fn i64_ne(&mut self) -> &mut Self { ... }
fn i64_lt_unsigned(&mut self) -> &mut Self { ... }
fn i64_lt_signed(&mut self) -> &mut Self { ... }
fn i64_gt_unsigned(&mut self) -> &mut Self { ... }
fn i64_gt_signed(&mut self) -> &mut Self { ... }
fn i64_lte_unsigned(&mut self) -> &mut Self { ... }
fn i64_lte_signed(&mut self) -> &mut Self { ... }
fn i64_gte_unsigned(&mut self) -> &mut Self { ... }
fn i64_gte_signed(&mut self) -> &mut Self { ... }
fn i64_extend_i32u(&mut self) -> &mut Self { ... }
fn f32_const(&mut self, val: f32) -> &mut Self { ... }
fn f32_abs(&mut self) -> &mut Self { ... }
fn f32_ceil(&mut self) -> &mut Self { ... }
fn f32_floor(&mut self) -> &mut Self { ... }
fn f32_trunc(&mut self) -> &mut Self { ... }
fn f32_sqrt(&mut self) -> &mut Self { ... }
fn f32_add(&mut self) -> &mut Self { ... }
fn f32_sub(&mut self) -> &mut Self { ... }
fn f32_mul(&mut self) -> &mut Self { ... }
fn f32_div(&mut self) -> &mut Self { ... }
fn f32_min(&mut self) -> &mut Self { ... }
fn f32_max(&mut self) -> &mut Self { ... }
fn f32_eq(&mut self) -> &mut Self { ... }
fn f32_ne(&mut self) -> &mut Self { ... }
fn f32_gt(&mut self) -> &mut Self { ... }
fn f32_ge(&mut self) -> &mut Self { ... }
fn f32_lt(&mut self) -> &mut Self { ... }
fn f32_le(&mut self) -> &mut Self { ... }
fn f32_convert_i32s(&mut self) -> &mut Self { ... }
fn f32_demote_f64(&mut self) -> &mut Self { ... }
fn f64_const(&mut self, val: f64) -> &mut Self { ... }
fn f64_abs(&mut self) -> &mut Self { ... }
fn f64_ceil(&mut self) -> &mut Self { ... }
fn f64_floor(&mut self) -> &mut Self { ... }
fn f64_trunc(&mut self) -> &mut Self { ... }
fn f64_sqrt(&mut self) -> &mut Self { ... }
fn f64_add(&mut self) -> &mut Self { ... }
fn f64_sub(&mut self) -> &mut Self { ... }
fn f64_mul(&mut self) -> &mut Self { ... }
fn f64_div(&mut self) -> &mut Self { ... }
fn f64_min(&mut self) -> &mut Self { ... }
fn f64_max(&mut self) -> &mut Self { ... }
fn f64_eq(&mut self) -> &mut Self { ... }
fn f64_ne(&mut self) -> &mut Self { ... }
fn f64_gt(&mut self) -> &mut Self { ... }
fn f64_ge(&mut self) -> &mut Self { ... }
fn f64_lt(&mut self) -> &mut Self { ... }
fn f64_le(&mut self) -> &mut Self { ... }
fn f64_reinterpret_i64(&mut self) -> &mut Self { ... }
fn f64_promote_f32(&mut self) -> &mut Self { ... }
fn f64_convert_i32s(&mut self) -> &mut Self { ... }
fn memory_init(&mut self, data_index: u32, mem: u32) -> &mut Self { ... }
fn memory_size(&mut self, mem: u32) -> &mut Self { ... }
fn memory_grow(&mut self, mem: u32) -> &mut Self { ... }
fn memory_fill(&mut self, mem: u32) -> &mut Self { ... }
fn memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> &mut Self { ... }
fn memory_discard(&mut self, mem: u32) -> &mut Self { ... }
fn data_drop(&mut self, data_index: u32) -> &mut Self { ... }
fn drop(&mut self) -> &mut Self { ... }
fn i32_load8_s(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i32_load8_u(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i32_load16_s(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i32_load16_u(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i32_load(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i32_store(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load8_s(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load8_u(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load16_s(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load16_u(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load32_s(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load32_u(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_load(&mut self, memarg: MemArg) -> &mut Self { ... }
fn i64_store(&mut self, memarg: MemArg) -> &mut Self { ... }
fn f32_load(&mut self, memarg: MemArg) -> &mut Self { ... }
fn f32_store(&mut self, memarg: MemArg) -> &mut Self { ... }
fn f64_load(&mut self, memarg: MemArg) -> &mut Self { ... }
fn f64_store(&mut self, memarg: MemArg) -> &mut Self { ... }
fn global_get(&mut self, idx: GlobalID) -> &mut Self { ... }
fn global_set(&mut self, idx: GlobalID) -> &mut Self { ... }
}
Expand description
Defines injection behaviour. Takes a wasmparser::Operator
and instructions are defined here.
Provided Methods§
sourcefn return_stmt(&mut self) -> &mut Self
fn return_stmt(&mut self) -> &mut Self
Inject a return statement
sourcefn unreachable(&mut self) -> &mut Self
fn unreachable(&mut self) -> &mut Self
Inject an unreachable instruction
sourcefn block(&mut self, block_type: BlockType) -> &mut Self
fn block(&mut self, block_type: BlockType) -> &mut Self
Inject a block statement. Indicates the start of a block
fn local_tee(&mut self, idx: LocalID) -> &mut Self
sourcefn i32_div_signed(&mut self) -> &mut Self
fn i32_div_signed(&mut self) -> &mut Self
Inject an i32.divs instruction
sourcefn i32_div_unsigned(&mut self) -> &mut Self
fn i32_div_unsigned(&mut self) -> &mut Self
Inject an i32.divu instruction
sourcefn i32_rem_unsigned(&mut self) -> &mut Self
fn i32_rem_unsigned(&mut self) -> &mut Self
Inject an i32.remu instruction
sourcefn i32_rem_signed(&mut self) -> &mut Self
fn i32_rem_signed(&mut self) -> &mut Self
Inject an i32.rems instruction
sourcefn i32_shr_signed(&mut self) -> &mut Self
fn i32_shr_signed(&mut self) -> &mut Self
Inject an i32.shrs instruction
sourcefn i32_shr_unsigned(&mut self) -> &mut Self
fn i32_shr_unsigned(&mut self) -> &mut Self
Inject an i32.shru instruction
sourcefn i32_lt_unsigned(&mut self) -> &mut Self
fn i32_lt_unsigned(&mut self) -> &mut Self
Inject an i32.ltu instruction
sourcefn i32_lt_signed(&mut self) -> &mut Self
fn i32_lt_signed(&mut self) -> &mut Self
Inject an i32.lts instruction
sourcefn i32_gt_unsigned(&mut self) -> &mut Self
fn i32_gt_unsigned(&mut self) -> &mut Self
Inject an i32.gtu instruction
sourcefn i32_gt_signed(&mut self) -> &mut Self
fn i32_gt_signed(&mut self) -> &mut Self
Inject an i32.gts instruction
sourcefn i32_lte_unsigned(&mut self) -> &mut Self
fn i32_lte_unsigned(&mut self) -> &mut Self
Inject an i32.lteu instruction
sourcefn i32_lte_signed(&mut self) -> &mut Self
fn i32_lte_signed(&mut self) -> &mut Self
Inject an i32.ltes instruction
sourcefn i32_gte_unsigned(&mut self) -> &mut Self
fn i32_gte_unsigned(&mut self) -> &mut Self
Inject an i32.gteu instruction
sourcefn i32_gte_signed(&mut self) -> &mut Self
fn i32_gte_signed(&mut self) -> &mut Self
Inject an i32.gtes instruction
fn i32_wrap_i64(&mut self) -> &mut Self
sourcefn i64_div_signed(&mut self) -> &mut Self
fn i64_div_signed(&mut self) -> &mut Self
Inject an i64.divs instruction
sourcefn i64_div_unsigned(&mut self) -> &mut Self
fn i64_div_unsigned(&mut self) -> &mut Self
Inject an i64.divu instruction
sourcefn i64_rem_unsigned(&mut self) -> &mut Self
fn i64_rem_unsigned(&mut self) -> &mut Self
Inject an i64.remu instruction
sourcefn i64_rem_signed(&mut self) -> &mut Self
fn i64_rem_signed(&mut self) -> &mut Self
Inject an i64.rems instruction
sourcefn i64_shr_signed(&mut self) -> &mut Self
fn i64_shr_signed(&mut self) -> &mut Self
Inject an i64.shrs instruction
sourcefn i64_shr_unsigned(&mut self) -> &mut Self
fn i64_shr_unsigned(&mut self) -> &mut Self
Inject an i64.shru instruction
sourcefn i64_lt_unsigned(&mut self) -> &mut Self
fn i64_lt_unsigned(&mut self) -> &mut Self
Inject an i64.ltu instruction
sourcefn i64_lt_signed(&mut self) -> &mut Self
fn i64_lt_signed(&mut self) -> &mut Self
Inject an i64.lts instruction
sourcefn i64_gt_unsigned(&mut self) -> &mut Self
fn i64_gt_unsigned(&mut self) -> &mut Self
Inject an i64.gtu instruction
sourcefn i64_gt_signed(&mut self) -> &mut Self
fn i64_gt_signed(&mut self) -> &mut Self
Inject an i64.gts instruction
sourcefn i64_lte_unsigned(&mut self) -> &mut Self
fn i64_lte_unsigned(&mut self) -> &mut Self
Inject an i64.lteu instruction
sourcefn i64_lte_signed(&mut self) -> &mut Self
fn i64_lte_signed(&mut self) -> &mut Self
Inject an i64.ltes instruction
sourcefn i64_gte_unsigned(&mut self) -> &mut Self
fn i64_gte_unsigned(&mut self) -> &mut Self
Inject an i64.gteu instruction
sourcefn i64_gte_signed(&mut self) -> &mut Self
fn i64_gte_signed(&mut self) -> &mut Self
Inject an i64.gtes instruction
fn i64_extend_i32u(&mut self) -> &mut Self
sourcefn f32_convert_i32s(&mut self) -> &mut Self
fn f32_convert_i32s(&mut self) -> &mut Self
Inject a f32_convert_i32s instruction
sourcefn f32_demote_f64(&mut self) -> &mut Self
fn f32_demote_f64(&mut self) -> &mut Self
Inject a f32_demote_f64 instruction
sourcefn f64_reinterpret_i64(&mut self) -> &mut Self
fn f64_reinterpret_i64(&mut self) -> &mut Self
Inject a f64_reinterpret_i64 instruction
sourcefn f64_promote_f32(&mut self) -> &mut Self
fn f64_promote_f32(&mut self) -> &mut Self
Inject a f64_promote_f32 instruction
sourcefn f64_convert_i32s(&mut self) -> &mut Self
fn f64_convert_i32s(&mut self) -> &mut Self
Inject a f64_convert_i32s instruction
sourcefn memory_init(&mut self, data_index: u32, mem: u32) -> &mut Self
fn memory_init(&mut self, data_index: u32, mem: u32) -> &mut Self
Inject a memory.init instruction
sourcefn memory_size(&mut self, mem: u32) -> &mut Self
fn memory_size(&mut self, mem: u32) -> &mut Self
Inject a memory.size instruction
sourcefn memory_grow(&mut self, mem: u32) -> &mut Self
fn memory_grow(&mut self, mem: u32) -> &mut Self
Inject a memory.grow instruction
sourcefn memory_fill(&mut self, mem: u32) -> &mut Self
fn memory_fill(&mut self, mem: u32) -> &mut Self
Inject a memory.fill instruction
sourcefn memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> &mut Self
fn memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> &mut Self
Inject a memory.copy instruction
sourcefn memory_discard(&mut self, mem: u32) -> &mut Self
fn memory_discard(&mut self, mem: u32) -> &mut Self
Inject a memory.discard instruction
sourcefn i32_load8_s(&mut self, memarg: MemArg) -> &mut Self
fn i32_load8_s(&mut self, memarg: MemArg) -> &mut Self
load 1 byte and sign-extend i8 to i32
sourcefn i32_load8_u(&mut self, memarg: MemArg) -> &mut Self
fn i32_load8_u(&mut self, memarg: MemArg) -> &mut Self
load 1 byte and zero-extend i8 to i32
sourcefn i32_load16_s(&mut self, memarg: MemArg) -> &mut Self
fn i32_load16_s(&mut self, memarg: MemArg) -> &mut Self
load 2 bytes and sign-extend i16 to i32
sourcefn i32_load16_u(&mut self, memarg: MemArg) -> &mut Self
fn i32_load16_u(&mut self, memarg: MemArg) -> &mut Self
load 2 bytes and zero-extend i16 to i32
fn i32_store(&mut self, memarg: MemArg) -> &mut Self
sourcefn i64_load8_s(&mut self, memarg: MemArg) -> &mut Self
fn i64_load8_s(&mut self, memarg: MemArg) -> &mut Self
load 1 byte and sign-extend i8 to i64
sourcefn i64_load8_u(&mut self, memarg: MemArg) -> &mut Self
fn i64_load8_u(&mut self, memarg: MemArg) -> &mut Self
load 1 byte and zero-extend i8 to i64
sourcefn i64_load16_s(&mut self, memarg: MemArg) -> &mut Self
fn i64_load16_s(&mut self, memarg: MemArg) -> &mut Self
load 2 bytes and sign-extend i16 to i64
sourcefn i64_load16_u(&mut self, memarg: MemArg) -> &mut Self
fn i64_load16_u(&mut self, memarg: MemArg) -> &mut Self
load 2 bytes and zero-extend i16 to i64
sourcefn i64_load32_s(&mut self, memarg: MemArg) -> &mut Self
fn i64_load32_s(&mut self, memarg: MemArg) -> &mut Self
load 4 bytes and sign-extend i32 to i64
sourcefn i64_load32_u(&mut self, memarg: MemArg) -> &mut Self
fn i64_load32_u(&mut self, memarg: MemArg) -> &mut Self
load 4 bytes and zero-extend i32 to i64
fn i64_store(&mut self, memarg: MemArg) -> &mut Self
fn f32_store(&mut self, memarg: MemArg) -> &mut Self
sourcefn global_get(&mut self, idx: GlobalID) -> &mut Self
fn global_get(&mut self, idx: GlobalID) -> &mut Self
Inject a global.get
sourcefn global_set(&mut self, idx: GlobalID) -> &mut Self
fn global_set(&mut self, idx: GlobalID) -> &mut Self
Inject a global.set