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.