Struct cranelift_codegen::isa::EncInfo
source · pub struct EncInfo {
pub constraints: &'static [RecipeConstraints],
pub sizing: &'static [RecipeSizing],
pub names: &'static [&'static str],
}Expand description
Information about all the encodings in this ISA.
Fields§
§constraints: &'static [RecipeConstraints]Constraints on value operands per recipe.
sizing: &'static [RecipeSizing]Code size information per recipe.
names: &'static [&'static str]Names of encoding recipes.
Implementations§
source§impl EncInfo
impl EncInfo
sourcepub fn operand_constraints(
&self,
enc: Encoding
) -> Option<&'static RecipeConstraints>
pub fn operand_constraints(
&self,
enc: Encoding
) -> Option<&'static RecipeConstraints>
Get the value operand constraints for enc if it is a legal encoding.
sourcepub fn display(&self, enc: Encoding) -> DisplayEncoding
pub fn display(&self, enc: Encoding) -> DisplayEncoding
Create an object that can display an ISA-dependent encoding properly.
sourcepub fn byte_size(
&self,
enc: Encoding,
inst: Inst,
divert: &RegDiversions,
func: &Function
) -> CodeOffset
pub fn byte_size(
&self,
enc: Encoding,
inst: Inst,
divert: &RegDiversions,
func: &Function
) -> CodeOffset
Get the precise size in bytes of instructions encoded with enc.
Returns 0 for illegal encodings.
sourcepub fn branch_range(&self, enc: Encoding) -> Option<BranchRange>
pub fn branch_range(&self, enc: Encoding) -> Option<BranchRange>
Get the branch range that is supported by enc, if any.
This will never return None for a legal branch encoding.