Struct cretonne_codegen::isa::RecipeConstraints
[−]
[src]
pub struct RecipeConstraints { pub ins: &'static [OperandConstraint], pub outs: &'static [OperandConstraint], pub fixed_ins: bool, pub fixed_outs: bool, pub tied_ops: bool, pub clobbers_flags: bool, }
Value operand constraints for an encoding recipe.
Fields
ins: &'static [OperandConstraint]
Constraints for the instruction's fixed value operands.
If the instruction takes a variable number of operands, the register constraints for those operands must be computed dynamically.
- For branches and jumps, EBB arguments must match the expectations of the destination EBB.
- For calls and returns, the calling convention ABI specifies constraints.
outs: &'static [OperandConstraint]
Constraints for the instruction's fixed results.
If the instruction produces a variable number of results, it's probably a call and the constraints must be derived from the calling convention ABI.
fixed_ins: bool
Are any of the input constraints FixedReg
?
fixed_outs: bool
Are any of the output constraints FixedReg
?
tied_ops: bool
Are there any tied operands?
clobbers_flags: bool
Does this instruction clobber the CPU flags?
When true, SSA values of type iflags
or fflags
can not be live across the instruction.
Methods
impl RecipeConstraints
[src]
pub fn satisfied(
&self,
inst: Inst,
divert: &RegDiversions,
func: &Function
) -> bool
[src]
&self,
inst: Inst,
divert: &RegDiversions,
func: &Function
) -> bool
Check that these constraints are satisfied by the operands on inst
.
Trait Implementations
impl PartialEq for RecipeConstraints
[src]
fn eq(&self, __arg_0: &RecipeConstraints) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &RecipeConstraints) -> bool
[src]
This method tests for !=
.
impl Clone for RecipeConstraints
[src]
fn clone(&self) -> RecipeConstraints
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more