Next: PRU Pragmas, Previous: M32C Pragmas, Up: Pragmas

#### 6.62.4 MeP Pragmas

`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