Struct dynasmrt::VecAssembler [−][src]
pub struct VecAssembler<R: Relocation> { /* fields omitted */ }
Expand description
An assembler that assembles into a Vec<u8>
, while supporting labels. To support the different types of relocations
it requires a base address of the to be assembled code to be specified.
Implementations
Creates a new VecAssembler, with the specified base address.
Create a new dynamic label ID
Resolves any relocations emitted to the assembler before this point. If an impossible relocation was specified before this point, returns them here.
Use an UncommittedModifier
to alter uncommitted code.
This does not allow the user to change labels/relocations.
Provides access to the assemblers internal labels registry
Provides mutable access to the assemblers internal labels registry
Trait Implementations
Report the current offset into the assembling target
Push filler until the assembling target end is aligned to the given alignment.
This function is called in when a runtime error has to be generated. It panics.
type Relocation = R
type Relocation = R
The relocation info type this assembler uses.
Record the definition of a local label
Record the definition of a global label
Record the definition of a dynamic label
Equivalent of global_reloc, but takes a non-encoded relocation
fn dynamic_relocation(
&mut self,
id: DynamicLabel,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: R
)
fn dynamic_relocation(
&mut self,
id: DynamicLabel,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: R
)
Equivalent of dynamic_reloc, but takes a non-encoded relocation
Equivalent of forward_reloc, but takes a non-encoded relocation
Equivalent of backward_reloc, but takes a non-encoded relocation
Equivalent of bare_reloc, but takes a non-encoded relocation
fn forward_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
fn forward_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
Record a relocation spot for a forward reference to a local label
fn backward_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
fn backward_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
Record a relocation spot for a backward reference to a local label
fn global_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
fn global_reloc(
&mut self,
name: &'static str,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
Record a relocation spot for a reference to a global label
fn dynamic_reloc(
&mut self,
id: DynamicLabel,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
fn dynamic_reloc(
&mut self,
id: DynamicLabel,
target_offset: isize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
Record a relocation spot for a reference to a dynamic label
fn bare_reloc(
&mut self,
target: usize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
fn bare_reloc(
&mut self,
target: usize,
field_offset: u8,
ref_offset: u8,
kind: <Self::Relocation as Relocation>::Encoding
)
Record a relocation spot to an arbitrary target.
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more