[Main]
Title=Constraint Modifier Characters

[Top]
These are the constraint modifier characters which are meaningful for TIGCC:
<DL>
<DT><CODE>=</CODE>
<DD>Means that this operand is write-only for this instruction: the previous
value is discarded and replaced by output data.
<BR><BR>
<DT><CODE>+</CODE>
<DD>Means that this operand is both read and written by the instruction.
<BR><BR>
When the compiler fixes up the operands to satisfy the constraints,
it needs to know which operands are inputs to the instruction and
which are outputs from it.  <CODE>=</CODE> identifies an output; <CODE>+</CODE>
identifies an operand that is both input and output; all other operands
are assumed to be input only.
<BR><BR>
If you specify <CODE>=</CODE> or <CODE>+</CODE> in a constraint, you put it in the
first character of the constraint string.
<BR><BR>
<DT><CODE>&amp;</CODE>
<DD>Means (in a particular alternative) that this operand is an
<B>earlyclobber</B> operand, which is modified before the instruction is
finished using the input operands.  Therefore, this operand may not lie
in a register that is used as an input operand or as part of any memory
address.
<CODE>&amp;</CODE> does not obviate the need to write <CODE>=</CODE>.
</DL>
