f78
Constraint Modifier Characters
Contents|Index|Previous|Next
Constraint
modifier characters
The following are constraint
modifier characters.
-
=
Means that this operand
is write-only for this instruction: the previous value is discarded and
replaced by output data.
-
-
+
Means that this operand
is both read and written by the instruction.
-
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. ‘=’
identifies an output; ‘+’
identifies an operand that is both input and output; all other operands
are assumed to be input only.
-
-
&
Means (in a particular alternative)
that this operand is an earlycobber 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.
-
‘&’
applies only to the alternative in which it is written. In constraints
with multiple alternatives, sometimes one alternative requires ‘&’
while others do not. See, for example, the ‘movdf’
insn of the 68000.
-
‘&’
does not obviate the need to write ‘=’.
-
-
%
Declares the instruction
to be commutative for this operand and the following operand. This means
that the compiler may interchange the two operands if that is the cheapest
way to make all operands fit the constraints.
-
-
#
Says that all following
characters, up to the next comma, are to be ignored as a constraint. They
are significant only for choosing register preferences.
0