Struct cretonne_simplejit::SimpleJITBackend [−][src]
pub struct SimpleJITBackend { /* fields omitted */ }
A SimpleJITBackend
implements Backend
and emits code and data into memory where it can be
directly called and accessed.
Trait Implementations
impl<'simple_jit_backend> Backend for SimpleJITBackend
[src]
impl<'simple_jit_backend> Backend for SimpleJITBackend
type Builder = SimpleJITBuilder
A builder for constructing Backend
instances.
type CompiledFunction = SimpleJITCompiledFunction
SimpleJIT compiled function and data objects may have outstanding
relocations that need to be performed before the memory can be used.
These relocations are performed within finalize_function
and
finalize_data
.
type CompiledData = SimpleJITCompiledData
The results of "compiling" a data object.
type FinalizedFunction = *const u8
SimpleJIT emits code and data into memory, and provides raw pointers to them.
type FinalizedData = (*mut u8, usize)
The completed output artifact for a data object, if this is meaningful for the Backend
. Read more
type Product = ()
SimpleJIT emits code and data into memory as it processes them, so it
doesn't need to provide anything after the Module
is complete.
fn new(builder: SimpleJITBuilder) -> Self
[src]
fn new(builder: SimpleJITBuilder) -> Self
Create a new SimpleJITBackend
.
fn isa(&self) -> &TargetIsa
[src]
fn isa(&self) -> &TargetIsa
Return the TargetIsa
to compile for.
fn declare_function(&mut self, _name: &str, _linkage: Linkage)
[src]
fn declare_function(&mut self, _name: &str, _linkage: Linkage)
Declare a function.
fn declare_data(&mut self, _name: &str, _linkage: Linkage, _writable: bool)
[src]
fn declare_data(&mut self, _name: &str, _linkage: Linkage, _writable: bool)
Declare a data object.
fn define_function(
&mut self,
_name: &str,
ctx: &Context,
_namespace: &ModuleNamespace<Self>,
code_size: u32
) -> ModuleResult<Self::CompiledFunction>
[src]
fn define_function(
&mut self,
_name: &str,
ctx: &Context,
_namespace: &ModuleNamespace<Self>,
code_size: u32
) -> ModuleResult<Self::CompiledFunction>
Define a function, producing the function body from the given Context
. Read more
fn define_data(
&mut self,
_name: &str,
data: &DataContext,
_namespace: &ModuleNamespace<Self>
) -> ModuleResult<Self::CompiledData>
[src]
fn define_data(
&mut self,
_name: &str,
data: &DataContext,
_namespace: &ModuleNamespace<Self>
) -> ModuleResult<Self::CompiledData>
Define a zero-initialized data object of the given size. Read more
fn write_data_funcaddr(
&mut self,
_data: &mut Self::CompiledData,
_offset: usize,
_what: FuncRef
)
[src]
fn write_data_funcaddr(
&mut self,
_data: &mut Self::CompiledData,
_offset: usize,
_what: FuncRef
)
Write the address of what
into the data for data
at offset
. data
must refer to a defined data object. Read more
fn write_data_dataaddr(
&mut self,
_data: &mut Self::CompiledData,
_offset: usize,
_what: GlobalValue,
_usize: Addend
)
[src]
fn write_data_dataaddr(
&mut self,
_data: &mut Self::CompiledData,
_offset: usize,
_what: GlobalValue,
_usize: Addend
)
Write the address of what
plus addend
into the data for data
at offset
. data
must refer to a defined data object. Read more
fn finalize_function(
&mut self,
func: &Self::CompiledFunction,
namespace: &ModuleNamespace<Self>
) -> Self::FinalizedFunction
[src]
fn finalize_function(
&mut self,
func: &Self::CompiledFunction,
namespace: &ModuleNamespace<Self>
) -> Self::FinalizedFunction
Perform all outstanding relocations on the given function. This requires all Local
and Export
entities referenced to be defined. Read more
fn finalize_data(
&mut self,
data: &Self::CompiledData,
namespace: &ModuleNamespace<Self>
) -> Self::FinalizedData
[src]
fn finalize_data(
&mut self,
data: &Self::CompiledData,
namespace: &ModuleNamespace<Self>
) -> Self::FinalizedData
Perform all outstanding relocations on the given data object. This requires all Local
and Export
entities referenced to be defined. Read more
fn finish(self)
[src]
fn finish(self)
SimpleJIT emits code and data into memory as it processes them, so it
doesn't need to provide anything after the Module
is complete.
Auto Trait Implementations
impl !Send for SimpleJITBackend
impl !Send for SimpleJITBackend
impl !Sync for SimpleJITBackend
impl !Sync for SimpleJITBackend