Struct cranelift_wasm::DummyFuncEnvironment
source · pub struct DummyFuncEnvironment<'dummy_environment> {
pub mod_info: &'dummy_environment DummyModuleInfo,
pub heaps: PrimaryMap<Heap, HeapData>,
/* private fields */
}
Expand description
The FuncEnvironment
implementation for use by the DummyEnvironment
.
Fields§
§mod_info: &'dummy_environment DummyModuleInfo
This function environment’s module info.
heaps: PrimaryMap<Heap, HeapData>
Heaps we have created to implement Wasm linear memories.
Implementations§
source§impl<'dummy_environment> DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> DummyFuncEnvironment<'dummy_environment>
sourcepub fn new(
mod_info: &'dummy_environment DummyModuleInfo,
expected_reachability: Option<ExpectedReachability>
) -> Self
pub fn new( mod_info: &'dummy_environment DummyModuleInfo, expected_reachability: Option<ExpectedReachability> ) -> Self
Construct a new DummyFuncEnvironment
.
Trait Implementations§
source§impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environment>
source§fn make_global(
&mut self,
func: &mut Function,
index: GlobalIndex
) -> WasmResult<GlobalVariable>
fn make_global( &mut self, func: &mut Function, index: GlobalIndex ) -> WasmResult<GlobalVariable>
Set up the necessary preamble definitions in
func
to access the global variable
identified by index
. Read moresource§fn heaps(&self) -> &PrimaryMap<Heap, HeapData>
fn heaps(&self) -> &PrimaryMap<Heap, HeapData>
Get the heaps for this function environment. Read more
source§fn make_heap(
&mut self,
func: &mut Function,
_index: MemoryIndex
) -> WasmResult<Heap>
fn make_heap( &mut self, func: &mut Function, _index: MemoryIndex ) -> WasmResult<Heap>
Set up the necessary preamble definitions in
func
to access the linear memory identified
by index
. Read moresource§fn make_table(
&mut self,
func: &mut Function,
_index: TableIndex
) -> WasmResult<Table>
fn make_table( &mut self, func: &mut Function, _index: TableIndex ) -> WasmResult<Table>
Set up the necessary preamble definitions in
func
to access the table identified
by index
. Read moresource§fn make_indirect_sig(
&mut self,
func: &mut Function,
index: TypeIndex
) -> WasmResult<SigRef>
fn make_indirect_sig( &mut self, func: &mut Function, index: TypeIndex ) -> WasmResult<SigRef>
Set up a signature definition in the preamble of
func
that can be used for an indirect
call with signature index
. Read moresource§fn make_direct_func(
&mut self,
func: &mut Function,
index: FuncIndex
) -> WasmResult<FuncRef>
fn make_direct_func( &mut self, func: &mut Function, index: FuncIndex ) -> WasmResult<FuncRef>
Set up an external function definition in the preamble of
func
that can be used to
directly call the function index
. Read moresource§fn before_translate_operator(
&mut self,
_op: &Operator<'_>,
_builder: &mut FunctionBuilder<'_>,
state: &FuncTranslationState
) -> WasmResult<()>
fn before_translate_operator( &mut self, _op: &Operator<'_>, _builder: &mut FunctionBuilder<'_>, state: &FuncTranslationState ) -> WasmResult<()>
Optional callback for the
FunctionEnvironment
performing this translation to maintain
internal state or prepare custom state for the operator to translatesource§fn after_translate_operator(
&mut self,
_op: &Operator<'_>,
_builder: &mut FunctionBuilder<'_>,
state: &FuncTranslationState
) -> WasmResult<()>
fn after_translate_operator( &mut self, _op: &Operator<'_>, _builder: &mut FunctionBuilder<'_>, state: &FuncTranslationState ) -> WasmResult<()>
Optional callback for the
FunctionEnvironment
performing this translation to maintain
internal state or finalize custom state for the operator that was translatedsource§fn after_translate_function(
&mut self,
_builder: &mut FunctionBuilder<'_>,
_state: &FuncTranslationState
) -> WasmResult<()>
fn after_translate_function( &mut self, _builder: &mut FunctionBuilder<'_>, _state: &FuncTranslationState ) -> WasmResult<()>
Optional callback for the
FunctionEnvironment
performing this translation to perform work
after the function body is translated.source§fn translate_call_indirect(
&mut self,
builder: &mut FunctionBuilder<'_>,
_table_index: TableIndex,
_table: Table,
_sig_index: TypeIndex,
sig_ref: SigRef,
callee: Value,
call_args: &[Value]
) -> WasmResult<Inst>
fn translate_call_indirect( &mut self, builder: &mut FunctionBuilder<'_>, _table_index: TableIndex, _table: Table, _sig_index: TypeIndex, sig_ref: SigRef, callee: Value, call_args: &[Value] ) -> WasmResult<Inst>
source§fn translate_call(
&mut self,
pos: FuncCursor<'_>,
_callee_index: FuncIndex,
callee: FuncRef,
call_args: &[Value]
) -> WasmResult<Inst>
fn translate_call( &mut self, pos: FuncCursor<'_>, _callee_index: FuncIndex, callee: FuncRef, call_args: &[Value] ) -> WasmResult<Inst>
source§fn translate_memory_grow(
&mut self,
pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap,
_val: Value
) -> WasmResult<Value>
fn translate_memory_grow( &mut self, pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap, _val: Value ) -> WasmResult<Value>
Translate a
memory.grow
WebAssembly instruction. Read moresource§fn translate_memory_size(
&mut self,
pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap
) -> WasmResult<Value>
fn translate_memory_size( &mut self, pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap ) -> WasmResult<Value>
Translates a
memory.size
WebAssembly instruction. Read moresource§fn translate_memory_copy(
&mut self,
_pos: FuncCursor<'_>,
_src_index: MemoryIndex,
_src_heap: Heap,
_dst_index: MemoryIndex,
_dst_heap: Heap,
_dst: Value,
_src: Value,
_len: Value
) -> WasmResult<()>
fn translate_memory_copy( &mut self, _pos: FuncCursor<'_>, _src_index: MemoryIndex, _src_heap: Heap, _dst_index: MemoryIndex, _dst_heap: Heap, _dst: Value, _src: Value, _len: Value ) -> WasmResult<()>
Translate a
memory.copy
WebAssembly instruction. Read moresource§fn translate_memory_fill(
&mut self,
_pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap,
_dst: Value,
_val: Value,
_len: Value
) -> WasmResult<()>
fn translate_memory_fill( &mut self, _pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap, _dst: Value, _val: Value, _len: Value ) -> WasmResult<()>
Translate a
memory.fill
WebAssembly instruction. Read moresource§fn translate_memory_init(
&mut self,
_pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap,
_seg_index: u32,
_dst: Value,
_src: Value,
_len: Value
) -> WasmResult<()>
fn translate_memory_init( &mut self, _pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap, _seg_index: u32, _dst: Value, _src: Value, _len: Value ) -> WasmResult<()>
Translate a
memory.init
WebAssembly instruction. Read moresource§fn translate_data_drop(
&mut self,
_pos: FuncCursor<'_>,
_seg_index: u32
) -> WasmResult<()>
fn translate_data_drop( &mut self, _pos: FuncCursor<'_>, _seg_index: u32 ) -> WasmResult<()>
Translate a
data.drop
WebAssembly instruction.source§fn translate_table_size(
&mut self,
pos: FuncCursor<'_>,
_index: TableIndex,
_table: Table
) -> WasmResult<Value>
fn translate_table_size( &mut self, pos: FuncCursor<'_>, _index: TableIndex, _table: Table ) -> WasmResult<Value>
Translate a
table.size
WebAssembly instruction.source§fn translate_table_grow(
&mut self,
pos: FuncCursor<'_>,
_table_index: TableIndex,
_table: Table,
_delta: Value,
_init_value: Value
) -> WasmResult<Value>
fn translate_table_grow( &mut self, pos: FuncCursor<'_>, _table_index: TableIndex, _table: Table, _delta: Value, _init_value: Value ) -> WasmResult<Value>
Translate a
table.grow
WebAssembly instruction.source§fn translate_table_get(
&mut self,
builder: &mut FunctionBuilder<'_>,
_table_index: TableIndex,
_table: Table,
_index: Value
) -> WasmResult<Value>
fn translate_table_get( &mut self, builder: &mut FunctionBuilder<'_>, _table_index: TableIndex, _table: Table, _index: Value ) -> WasmResult<Value>
Translate a
table.get
WebAssembly instruction.source§fn translate_table_set(
&mut self,
_builder: &mut FunctionBuilder<'_>,
_table_index: TableIndex,
_table: Table,
_value: Value,
_index: Value
) -> WasmResult<()>
fn translate_table_set( &mut self, _builder: &mut FunctionBuilder<'_>, _table_index: TableIndex, _table: Table, _value: Value, _index: Value ) -> WasmResult<()>
Translate a
table.set
WebAssembly instruction.source§fn translate_table_copy(
&mut self,
_pos: FuncCursor<'_>,
_dst_index: TableIndex,
_dst_table: Table,
_src_index: TableIndex,
_src_table: Table,
_dst: Value,
_src: Value,
_len: Value
) -> WasmResult<()>
fn translate_table_copy( &mut self, _pos: FuncCursor<'_>, _dst_index: TableIndex, _dst_table: Table, _src_index: TableIndex, _src_table: Table, _dst: Value, _src: Value, _len: Value ) -> WasmResult<()>
Translate a
table.copy
WebAssembly instruction.source§fn translate_table_fill(
&mut self,
_pos: FuncCursor<'_>,
_table_index: TableIndex,
_dst: Value,
_val: Value,
_len: Value
) -> WasmResult<()>
fn translate_table_fill( &mut self, _pos: FuncCursor<'_>, _table_index: TableIndex, _dst: Value, _val: Value, _len: Value ) -> WasmResult<()>
Translate a
table.fill
WebAssembly instruction.source§fn translate_table_init(
&mut self,
_pos: FuncCursor<'_>,
_seg_index: u32,
_table_index: TableIndex,
_table: Table,
_dst: Value,
_src: Value,
_len: Value
) -> WasmResult<()>
fn translate_table_init( &mut self, _pos: FuncCursor<'_>, _seg_index: u32, _table_index: TableIndex, _table: Table, _dst: Value, _src: Value, _len: Value ) -> WasmResult<()>
Translate a
table.init
WebAssembly instruction.source§fn translate_elem_drop(
&mut self,
_pos: FuncCursor<'_>,
_seg_index: u32
) -> WasmResult<()>
fn translate_elem_drop( &mut self, _pos: FuncCursor<'_>, _seg_index: u32 ) -> WasmResult<()>
Translate a
elem.drop
WebAssembly instruction.source§fn translate_ref_func(
&mut self,
pos: FuncCursor<'_>,
_func_index: FuncIndex
) -> WasmResult<Value>
fn translate_ref_func( &mut self, pos: FuncCursor<'_>, _func_index: FuncIndex ) -> WasmResult<Value>
Translate a
ref.func
WebAssembly instruction.source§fn translate_custom_global_get(
&mut self,
pos: FuncCursor<'_>,
_global_index: GlobalIndex
) -> WasmResult<Value>
fn translate_custom_global_get( &mut self, pos: FuncCursor<'_>, _global_index: GlobalIndex ) -> WasmResult<Value>
Translate a
global.get
WebAssembly instruction at pos
for a global
that is custom.source§fn translate_custom_global_set(
&mut self,
_pos: FuncCursor<'_>,
_global_index: GlobalIndex,
_val: Value
) -> WasmResult<()>
fn translate_custom_global_set( &mut self, _pos: FuncCursor<'_>, _global_index: GlobalIndex, _val: Value ) -> WasmResult<()>
Translate a
global.set
WebAssembly instruction at pos
for a global
that is custom.source§fn translate_atomic_wait(
&mut self,
pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap,
_addr: Value,
_expected: Value,
_timeout: Value
) -> WasmResult<Value>
fn translate_atomic_wait( &mut self, pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap, _addr: Value, _expected: Value, _timeout: Value ) -> WasmResult<Value>
Translate an
i32.atomic.wait
or i64.atomic.wait
WebAssembly instruction.
The index
provided identifies the linear memory containing the value
to wait on, and heap
is the heap reference returned by make_heap
for the same index. Whether the waited-on value is 32- or 64-bit can be
determined by examining the type of expected
, which must be only I32 or I64. Read moresource§fn translate_atomic_notify(
&mut self,
pos: FuncCursor<'_>,
_index: MemoryIndex,
_heap: Heap,
_addr: Value,
_count: Value
) -> WasmResult<Value>
fn translate_atomic_notify( &mut self, pos: FuncCursor<'_>, _index: MemoryIndex, _heap: Heap, _addr: Value, _count: Value ) -> WasmResult<Value>
Translate an
atomic.notify
WebAssembly instruction.
The index
provided identifies the linear memory containing the value
to wait on, and heap
is the heap reference returned by make_heap
for the same index. Read moresource§fn unsigned_add_overflow_condition(&self) -> IntCC
fn unsigned_add_overflow_condition(&self) -> IntCC
Returns the target ISA’s condition to check for unsigned addition
overflowing.
source§fn is_wasm_parameter(&self, signature: &Signature, index: usize) -> bool
fn is_wasm_parameter(&self, signature: &Signature, index: usize) -> bool
Is the given parameter of the given function a wasm-level parameter, as opposed to a hidden
parameter added for use by the implementation?
source§fn is_wasm_return(&self, signature: &Signature, index: usize) -> bool
fn is_wasm_return(&self, signature: &Signature, index: usize) -> bool
Is the given return of the given function a wasm-level parameter, as
opposed to a hidden parameter added for use by the implementation?
source§fn after_locals(&mut self, num_locals_defined: usize)
fn after_locals(&mut self, num_locals_defined: usize)
Called after the locals for a function have been parsed, and the number
of variables defined by this function is provided.
source§fn translate_ref_null(
&mut self,
pos: FuncCursor<'_>,
ty: WasmType
) -> WasmResult<Value>
fn translate_ref_null( &mut self, pos: FuncCursor<'_>, ty: WasmType ) -> WasmResult<Value>
Translate a
ref.null T
WebAssembly instruction. Read moresource§fn translate_ref_is_null(
&mut self,
pos: FuncCursor<'_>,
value: Value
) -> WasmResult<Value>
fn translate_ref_is_null( &mut self, pos: FuncCursor<'_>, value: Value ) -> WasmResult<Value>
Translate a
ref.is_null
WebAssembly instruction. Read moresource§fn translate_loop_header(
&mut self,
_builder: &mut FunctionBuilder<'_>
) -> WasmResult<()>
fn translate_loop_header( &mut self, _builder: &mut FunctionBuilder<'_> ) -> WasmResult<()>
Emit code at the beginning of every wasm loop. Read more
source§fn before_unconditionally_trapping_memory_access(
&mut self,
_builder: &mut FunctionBuilder<'_>
) -> WasmResult<()>
fn before_unconditionally_trapping_memory_access( &mut self, _builder: &mut FunctionBuilder<'_> ) -> WasmResult<()>
Optional callback for the
FuncEnvironment
performing this translation
to maintain, prepare, or finalize custom, internal state when we
statically determine that a Wasm memory access will unconditionally
trap, rendering the rest of the block unreachable. Called just before
the unconditional trap is emitted.source§fn before_translate_function(
&mut self,
_builder: &mut FunctionBuilder<'_>,
_state: &FuncTranslationState
) -> WasmResult<()>
fn before_translate_function( &mut self, _builder: &mut FunctionBuilder<'_>, _state: &FuncTranslationState ) -> WasmResult<()>
Optional callback for the
FunctionEnvironment
performing this translation to perform work
before the function body is translated.source§impl<'dummy_environment> TargetEnvironment for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> TargetEnvironment for DummyFuncEnvironment<'dummy_environment>
source§fn target_config(&self) -> TargetFrontendConfig
fn target_config(&self) -> TargetFrontendConfig
Get the information needed to produce Cranelift IR for the given target.
source§fn heap_access_spectre_mitigation(&self) -> bool
fn heap_access_spectre_mitigation(&self) -> bool
Whether to enable Spectre mitigations for heap accesses.
source§fn pointer_type(&self) -> Type
fn pointer_type(&self) -> Type
Get the Cranelift integer type to use for native pointers. Read more
source§fn pointer_bytes(&self) -> u8
fn pointer_bytes(&self) -> u8
Get the size of a native pointer, in bytes.
Auto Trait Implementations§
impl<'dummy_environment> RefUnwindSafe for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> Send for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> Sync for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> Unpin for DummyFuncEnvironment<'dummy_environment>
impl<'dummy_environment> UnwindSafe for DummyFuncEnvironment<'dummy_environment>
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