• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
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:&nbsp;<a rel="next" accesskey="n" href="RS_002f6000-and-PowerPC-Pragmas.html#RS_002f6000-and-PowerPC-Pragmas">RS/6000 and PowerPC Pragmas</a>,
53Previous:&nbsp;<a rel="previous" accesskey="p" href="M32C-Pragmas.html#M32C-Pragmas">M32C Pragmas</a>,
54Up:&nbsp;<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