Trait winch_codegen::isa::TargetIsa
source · pub trait TargetIsa: Send + Sync {
Show 15 methods
// Required methods
fn name(&self) -> &'static str;
fn triple(&self) -> &Triple;
fn flags(&self) -> &Flags;
fn isa_flags(&self) -> Vec<Value>;
fn compile_function(
&self,
sig: &WasmFuncType,
body: &FunctionBody<'_>,
translation: &ModuleTranslation<'_>,
types: &ModuleTypesBuilder,
builtins: &mut BuiltinFunctions,
validator: &mut FuncValidator<ValidatorResources>
) -> Result<MachBufferFinalized<Final>>;
fn emit_unwind_info(
&self,
_result: &MachBufferFinalized<Final>,
_kind: UnwindInfoKind
) -> Result<Option<UnwindInfo>>;
fn text_section_builder(
&self,
num_labeled_funcs: usize
) -> Box<dyn TextSectionBuilder>;
fn function_alignment(&self) -> u32;
fn compile_trampoline(
&self,
ty: &WasmFuncType,
kind: TrampolineKind
) -> Result<MachBufferFinalized<Final>>;
// Provided methods
fn is_branch_protection_enabled(&self) -> bool { ... }
fn default_call_conv(&self) -> CallConv { ... }
fn wasmtime_call_conv(&self) -> CallingConvention { ... }
fn endianness(&self) -> Endianness { ... }
fn create_systemv_cie(&self) -> Option<CommonInformationEntry> { ... }
fn pointer_bytes(&self) -> u8 { ... }
}
Expand description
A trait representing commonalities between the supported instruction set architectures.
Required Methods§
sourcefn flags(&self) -> &Flags
fn flags(&self) -> &Flags
Get the ISA-independent flags that were used to make this trait object.
sourcefn isa_flags(&self) -> Vec<Value>
fn isa_flags(&self) -> Vec<Value>
Get the ISA-dependent flag values that were used to make this trait object.
sourcefn compile_function(
&self,
sig: &WasmFuncType,
body: &FunctionBody<'_>,
translation: &ModuleTranslation<'_>,
types: &ModuleTypesBuilder,
builtins: &mut BuiltinFunctions,
validator: &mut FuncValidator<ValidatorResources>
) -> Result<MachBufferFinalized<Final>>
fn compile_function( &self, sig: &WasmFuncType, body: &FunctionBody<'_>, translation: &ModuleTranslation<'_>, types: &ModuleTypesBuilder, builtins: &mut BuiltinFunctions, validator: &mut FuncValidator<ValidatorResources> ) -> Result<MachBufferFinalized<Final>>
Compile a function.
fn emit_unwind_info( &self, _result: &MachBufferFinalized<Final>, _kind: UnwindInfoKind ) -> Result<Option<UnwindInfo>>
sourcefn text_section_builder(
&self,
num_labeled_funcs: usize
) -> Box<dyn TextSectionBuilder>
fn text_section_builder( &self, num_labeled_funcs: usize ) -> Box<dyn TextSectionBuilder>
See cranelift_codegen::isa::TargetIsa::text_section_builder
.
sourcefn function_alignment(&self) -> u32
fn function_alignment(&self) -> u32
See cranelift_codegen::isa::TargetIsa::function_alignment
.
sourcefn compile_trampoline(
&self,
ty: &WasmFuncType,
kind: TrampolineKind
) -> Result<MachBufferFinalized<Final>>
fn compile_trampoline( &self, ty: &WasmFuncType, kind: TrampolineKind ) -> Result<MachBufferFinalized<Final>>
Compile a trampoline kind.
This function, internally dispatches to the right trampoline to emit
depending on the kind
paramter.
Provided Methods§
sourcefn is_branch_protection_enabled(&self) -> bool
fn is_branch_protection_enabled(&self) -> bool
Get a flag indicating whether branch protection is enabled.
sourcefn default_call_conv(&self) -> CallConv
fn default_call_conv(&self) -> CallConv
Get the default calling convention of the underlying target triple.
sourcefn wasmtime_call_conv(&self) -> CallingConvention
fn wasmtime_call_conv(&self) -> CallingConvention
Derive Wasmtime’s calling convention from the triple’s default calling convention.
sourcefn endianness(&self) -> Endianness
fn endianness(&self) -> Endianness
Get the endianess of the underlying target triple.
sourcefn create_systemv_cie(&self) -> Option<CommonInformationEntry>
fn create_systemv_cie(&self) -> Option<CommonInformationEntry>
See cranelift_codegen::isa::TargetIsa::create_systemv_cie
.
sourcefn pointer_bytes(&self) -> u8
fn pointer_bytes(&self) -> u8
Returns the pointer width of the ISA in bytes.