• 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>Explicit Reg Vars - 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="C-Extensions.html#C-Extensions" title="C Extensions">
9<link rel="prev" href="Asm-Labels.html#Asm-Labels" title="Asm Labels">
10<link rel="next" href="Alternate-Keywords.html#Alternate-Keywords" title="Alternate Keywords">
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="Explicit-Reg-Vars"></a>
51<p>
52Next:&nbsp;<a rel="next" accesskey="n" href="Alternate-Keywords.html#Alternate-Keywords">Alternate Keywords</a>,
53Previous:&nbsp;<a rel="previous" accesskey="p" href="Asm-Labels.html#Asm-Labels">Asm Labels</a>,
54Up:&nbsp;<a rel="up" accesskey="u" href="C-Extensions.html#C-Extensions">C Extensions</a>
55<hr>
56</div>
57
58<h3 class="section">6.44 Variables in Specified Registers</h3>
59
60<p><a name="index-explicit-register-variables-2680"></a><a name="index-variables-in-specified-registers-2681"></a><a name="index-specified-registers-2682"></a><a name="index-registers_002c-global-allocation-2683"></a>
61GNU C allows you to put a few global variables into specified hardware
62registers.  You can also specify the register in which an ordinary
63register variable should be allocated.
64
65     <ul>
66<li>Global register variables reserve registers throughout the program. 
67This may be useful in programs such as programming language
68interpreters which have a couple of global variables that are accessed
69very often.
70
71     <li>Local register variables in specific registers do not reserve the
72registers, except at the point where they are used as input or output
73operands in an <code>asm</code> statement and the <code>asm</code> statement itself is
74not deleted.  The compiler's data flow analysis is capable of determining
75where the specified registers contain live values, and where they are
76available for other uses.  Stores into local register variables may be deleted
77when they appear to be dead according to dataflow analysis.  References
78to local register variables may be deleted or moved or simplified.
79
80     <p>These local variables are sometimes convenient for use with the extended
81<code>asm</code> feature (see <a href="Extended-Asm.html#Extended-Asm">Extended Asm</a>), if you want to write one
82output of the assembler instruction directly into a particular register. 
83(This will work provided the register you specify fits the constraints
84specified for that operand in the <code>asm</code>.) 
85</ul>
86
87<ul class="menu">
88<li><a accesskey="1" href="Global-Reg-Vars.html#Global-Reg-Vars">Global Reg Vars</a>
89<li><a accesskey="2" href="Local-Reg-Vars.html#Local-Reg-Vars">Local Reg Vars</a>
90</ul>
91
92 </body></html>
93
94