Using the GNU Compiler Collection (GCC): Constraints

Next: Asm Labels, Previous: Extended Asm, Up: Using Assembly Language with C   [Contents][Index]


6.45.3 Constraints for asm Operands

Here are specific details on what constraint letters you can use with asm operands. 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. Side-effects aren’t allowed in operands of inline asm, unless ‘<’ or ‘>’ constraints are used, because there is no guarantee that the side-effects will happen exactly once in an instruction that can update the addressing register.

• Simple Constraints:    Basic use of constraints.
• Multi-Alternative:    When an insn has two alternative constraint-patterns.
• Modifiers:    More precise control over effects of constraints.
• Machine Constraints:    Special constraints for some particular machines.