Contents|Index|Previous|Next
Variables
in specified registers
GNU C allows you to put
a few global variables into specified hardware registers. You can also
specify the register in which an ordinary register variable should be allocated.
-
Global register variables reserve
registers throughout the program. This may be useful in programs such as
programming language interpreters which have a couple of global variables
that are accessed very often.
-
Local register variables in
specific registers do not reserve the registers. The compiler’s data flow
analysis is capable of determining where the specified registers contain
live values, and where they are available for other uses. Stores into local
register variables may be deleted when they appear to be dead according
to data flow analysis. References to local register variables may be deleted
or moved or simplified.
These local variables are sometimes
convenient for use with the extended asm
feature (see Assembler
instructions with C expression operands), if you want to write one
output of the assembler instruction directly into a particular register.
(This will work provided the register you specify fits the constraints
specified for that operand in the asm.)