PREV UP NEXT Using and Porting GNU CC

15.6: Operand Constraints

Each match_operand in an instruction pattern can specify a constraint for the type of operands allowed. Constraints can say whether an operand may be in a register, and which kinds of register; whether the operand can be a memory reference, and which kinds of address; whether the operand may be an immediate constant, and which possible values it may have. Constraints can also require two operands to match.

  • Simple Constraints Basic use of constraints.
  • Multi-Alternative When an insn has two alternative constraint-patterns.
  • Class Preferences Constraints guide which hard register to put things in.
  • Modifiers More precise control over effects of constraints.
  • Machine Constraints Existing constraints for some particular machines.
  • No Constraints Describing a clean machine without constraints.