Chapter 6. Extensions to the C Language Family
*
Says that the following character should be ignored when choosing register preferences.
no effect on the meaning of the constraint as a constraint, and no effect on reloading.
6.38.4. Constraints for Particular Machines
Whenever possible, you should use the general-purpose constraint letters in
will convey meaning more readily to people reading your code. Failing that, use the constraint letters
that usually have very similar meanings across architectures. The most commonly used constraints are
and
(for memory and general-purpose registers respectively; Section 6.38.1 Simple Constraints),
m
r
and
, usually the letter indicating the most common immediate-constant format.
I
For each machine architecture, the
These constraints are used by the compiler itself for instruction generation, as well as for
ments; therefore, some of the constraints are not particularly interesting for
defined through these macros:
REG_CLASS_FROM_LETTER
Register class constraints (usually lower case).
CONST_OK_FOR_LETTER_P
Immediate constant constraints, for non-floating point constants of word size or smaller precision
(usually upper case).
CONST_DOUBLE_OK_FOR_LETTER_P
Immediate constant constraints, for all floating point constants and for constants of greater than
word size precision (usually upper case).
EXTRA_CONSTRAINT
Special cases of registers or memory. This macro is not required, and is only defined for some
machines.
Inspecting these macro definitions in the compiler source for your machine is the best way to be certain
you have the right constraints. However, here is a summary of the machine-dependent constraints
available on some particular machines.
IBM RS6000--
rs6000.h
b
Address base register
f
Floating point register
h
,
, or
MQ
CTR
q
register
MQ
config/
register
LINK
/
.h
machine
machine
arguments, since they
asm
file defines additional constraints.
. The constraints are
asm
165
has
*
state-
asm
Need help?
Do you have a question about the ENTERPRISE LINUX 3 - USING GCC and is the answer not in the manual?
Questions and answers