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. |