1<html lang="en"> 2<head> 3<title>MeP Pragmas - Using the GNU Compiler Collection (GCC)</title> 4<meta http-equiv="Content-Type" content="text/html"> 5<meta name="description" content="Using the GNU Compiler Collection (GCC)"> 6<meta name="generator" content="makeinfo 4.13"> 7<link title="Top" rel="start" href="index.html#Top"> 8<link rel="up" href="Pragmas.html#Pragmas" title="Pragmas"> 9<link rel="prev" href="M32C-Pragmas.html#M32C-Pragmas" title="M32C Pragmas"> 10<link rel="next" href="RS_002f6000-and-PowerPC-Pragmas.html#RS_002f6000-and-PowerPC-Pragmas" title="RS/6000 and PowerPC Pragmas"> 11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 12<!-- 13Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 141998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 152010 Free Software Foundation, Inc. 16 17Permission is granted to copy, distribute and/or modify this document 18under the terms of the GNU Free Documentation License, Version 1.3 or 19any later version published by the Free Software Foundation; with the 20Invariant Sections being ``Funding Free Software'', the Front-Cover 21Texts being (a) (see below), and with the Back-Cover Texts being (b) 22(see below). A copy of the license is included in the section entitled 23``GNU Free Documentation License''. 24 25(a) The FSF's Front-Cover Text is: 26 27 A GNU Manual 28 29(b) The FSF's Back-Cover Text is: 30 31 You have freedom to copy and modify this GNU Manual, like GNU 32 software. Copies published by the Free Software Foundation raise 33 funds for GNU development.--> 34<meta http-equiv="Content-Style-Type" content="text/css"> 35<style type="text/css"><!-- 36 pre.display { font-family:inherit } 37 pre.format { font-family:inherit } 38 pre.smalldisplay { font-family:inherit; font-size:smaller } 39 pre.smallformat { font-family:inherit; font-size:smaller } 40 pre.smallexample { font-size:smaller } 41 pre.smalllisp { font-size:smaller } 42 span.sc { font-variant:small-caps } 43 span.roman { font-family:serif; font-weight:normal; } 44 span.sansserif { font-family:sans-serif; font-weight:normal; } 45--></style> 46<link rel="stylesheet" type="text/css" href="../cs.css"> 47</head> 48<body> 49<div class="node"> 50<a name="MeP-Pragmas"></a> 51<p> 52Next: <a rel="next" accesskey="n" href="RS_002f6000-and-PowerPC-Pragmas.html#RS_002f6000-and-PowerPC-Pragmas">RS/6000 and PowerPC Pragmas</a>, 53Previous: <a rel="previous" accesskey="p" href="M32C-Pragmas.html#M32C-Pragmas">M32C Pragmas</a>, 54Up: <a rel="up" accesskey="u" href="Pragmas.html#Pragmas">Pragmas</a> 55<hr> 56</div> 57 58<h4 class="subsection">6.56.3 MeP Pragmas</h4> 59 60 <dl> 61<dt><code>custom io_volatile (on|off)</code><dd><a name="index-pragma_002c-custom-io_005fvolatile-3218"></a>Overrides the command line option <code>-mio-volatile</code> for the current 62file. Note that for compatibility with future GCC releases, this 63option should only be used once before any <code>io</code> variables in each 64file. 65 66 <br><dt><code>GCC coprocessor available </code><var>registers</var><dd><a name="index-pragma_002c-coprocessor-available-3219"></a>Specifies which coprocessor registers are available to the register 67allocator. <var>registers</var> may be a single register, register range 68separated by ellipses, or comma-separated list of those. Example: 69 70 <pre class="example"> #pragma GCC coprocessor available $c0...$c10, $c28 71</pre> 72 <br><dt><code>GCC coprocessor call_saved </code><var>registers</var><dd><a name="index-pragma_002c-coprocessor-call_005fsaved-3220"></a>Specifies which coprocessor registers are to be saved and restored by 73any function using them. <var>registers</var> may be a single register, 74register range separated by ellipses, or comma-separated list of 75those. Example: 76 77 <pre class="example"> #pragma GCC coprocessor call_saved $c4...$c6, $c31 78</pre> 79 <br><dt><code>GCC coprocessor subclass '(A|B|C|D)' = </code><var>registers</var><dd><a name="index-pragma_002c-coprocessor-subclass-3221"></a>Creates and defines a register class. These register classes can be 80used by inline <code>asm</code> constructs. <var>registers</var> may be a single 81register, register range separated by ellipses, or comma-separated 82list of those. Example: 83 84 <pre class="example"> #pragma GCC coprocessor subclass 'B' = $c2, $c4, $c6 85 86 asm ("cpfoo %0" : "=B" (x)); 87</pre> 88 <br><dt><code>GCC disinterrupt </code><var>name</var><code> , </code><var>name</var><code> ...</code><dd><a name="index-pragma_002c-disinterrupt-3222"></a>For the named functions, the compiler adds code to disable interrupts 89for the duration of those functions. Any functions so named, which 90are not encountered in the source, cause a warning that the pragma was 91not used. Examples: 92 93 <pre class="example"> #pragma disinterrupt foo 94 #pragma disinterrupt bar, grill 95 int foo () { ... } 96</pre> 97 <br><dt><code>GCC call </code><var>name</var><code> , </code><var>name</var><code> ...</code><dd><a name="index-pragma_002c-call-3223"></a>For the named functions, the compiler always uses a register-indirect 98call model when calling the named functions. Examples: 99 100 <pre class="example"> extern int foo (); 101 #pragma call foo 102</pre> 103 </dl> 104 105 </body></html> 106 107