custom io_volatile (on|off)
- Overrides the command-line option
-mio-volatile
for the current
file. Note that for compatibility with future GCC releases, this
option should only be used once before any io
variables in each
file.
GCC coprocessor available
registers- Specifies which coprocessor registers are available to the register
allocator. registers may be a single register, register range
separated by ellipses, or comma-separated list of those. Example:
#pragma GCC coprocessor available $c0...$c10, $c28
GCC coprocessor call_saved
registers- Specifies which coprocessor registers are to be saved and restored by
any function using them. registers may be a single register,
register range separated by ellipses, or comma-separated list of
those. Example:
#pragma GCC coprocessor call_saved $c4...$c6, $c31
GCC coprocessor subclass '(A|B|C|D)' =
registers- Creates and defines a register class. These register classes can be
used by inline
asm
constructs. registers may be a single
register, register range separated by ellipses, or comma-separated
list of those. Example:
#pragma GCC coprocessor subclass 'B' = $c2, $c4, $c6
asm ("cpfoo %0" : "=B" (x));
GCC disinterrupt
name ,
name ...
- For the named functions, the compiler adds code to disable interrupts
for the duration of those functions. If any functions so named
are not encountered in the source, a warning is emitted that the pragma is
not used. Examples:
#pragma disinterrupt foo
#pragma disinterrupt bar, grill
int foo () { ... }
GCC call
name ,
name ...
- For the named functions, the compiler always uses a register-indirect
call model when calling the named functions. Examples:
extern int foo ();
#pragma call foo