28.3 Specifying Registers for Local Variables
You can define a local register variable with a specified register like this:
register int *foo asm ("t0");
Here t0
is the name of the register that should be used. Note that this
is the same syntax used for defining global register variables, but for a local variable
it would appear within a function.
Defining such a register variable does not reserve the register; it remains available for other uses in places where flow control determines the variable’s value is not live. Using this feature may leave the compiler too few available registers to compile certain functions.
This option does not ensure that the compiler will generate code that has this variable
in the register you specify at all times. You may not code an explicit reference to this
register in an asm
statement and assume it will always refer to this
variable.
Assignments to local register variables may be deleted when they appear to be unused. References to local register variables may be deleted, moved or simplified.