#### 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