Crate wasmer_clif_fork_wasm

Source
Expand description

Performs translation from a wasm module in binary format to the in-memory form of Cranelift IR. More particularly, it translates the code of all the functions bodies and interacts with an environment implementing the ModuleEnvironment trait to deal with tables, globals and linear memory.

The crate provides a DummyEnvironment struct that will allow to translate the code of the functions but will fail at execution.

The main function of this module is translate_module.

Macros§

wasm_unsupported
Return an Err(WasmError::Unsupported(msg)) where msg the string built by calling format! on the arguments to this macro.

Structs§

DefinedFuncIndex
Index type of a defined function inside the WebAssembly module.
DefinedGlobalIndex
Index type of a defined global inside the WebAssembly module.
DefinedMemoryIndex
Index type of a defined memory inside the WebAssembly module.
DefinedTableIndex
Index type of a defined table inside the WebAssembly module.
DummyEnvironment
This ModuleEnvironment implementation is a “naïve” one, doing essentially nothing and emitting placeholders when forced to. Don’t try to execute code translated for this environment, essentially here for translation debug purposes.
FuncIndex
Index type of a function (imported or defined) inside the WebAssembly module.
FuncTranslationState
Contains information passed along during a function’s translation and that records:
FuncTranslator
WebAssembly to Cranelift IR function translator.
Global
WebAssembly global.
GlobalIndex
Index type of a global variable (imported or defined) inside the WebAssembly module.
Memory
WebAssembly linear memory.
MemoryIndex
Index type of a linear memory (imported or defined) inside the WebAssembly module.
ModuleTranslationState
Contains information decoded from the Wasm module that must be referenced during each Wasm function’s translation.
PassiveDataIndex
Index type of a passive data segment inside the WebAssembly module.
PassiveElemIndex
Index type of a passive element segment inside the WebAssembly module.
SignatureIndex
Index type of a signature (imported or defined) inside the WebAssembly module.
Table
WebAssembly table.
TableIndex
Index type of a table (imported or defined) inside the WebAssembly module.

Enums§

GlobalInit
Globals are initialized via the const operators or by referring to another import.
GlobalVariable
The value of a WebAssembly global variable.
ReturnMode
How to return from functions.
TableElementType
WebAssembly table element. Can be a function or a scalar type.
WasmError
A WebAssembly translation error.

Constants§

VERSION
Version number of this crate.

Traits§

FuncEnvironment
Environment affecting the translation of a single WebAssembly function.
ModuleEnvironment
An object satisfying the ModuleEnvironment trait can be passed as argument to the translate_module function. These methods should not be called by the user, they are only for cranelift-wasm internal use.
TargetEnvironment
Environment affecting the translation of a WebAssembly.

Functions§

declare_locals
Declare count local variables of the same type, starting from next_local.
get_vmctx_value_label
Special VMContext value label. It is tracked as 0xffff_fffe label.
translate_module
Translate a sequence of bytes forming a valid Wasm binary into a list of valid Cranelift IR Function.
translate_operator
Translates wasm operators into Cranelift IR instructions. Returns true if it inserted a return.

Type Aliases§

WasmResult
A convenient alias for a Result that uses WasmError as the error type.