• 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-2013.11/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>V850 Options - 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="Submodel-Options.html#Submodel-Options" title="Submodel Options">
9<link rel="prev" href="TILEPro-Options.html#TILEPro-Options" title="TILEPro Options">
10<link rel="next" href="VAX-Options.html#VAX-Options" title="VAX Options">
11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
12<!--
13Copyright (C) 1988-2013 Free Software Foundation, Inc.
14
15Permission is granted to copy, distribute and/or modify this document
16under the terms of the GNU Free Documentation License, Version 1.3 or
17any later version published by the Free Software Foundation; with the
18Invariant Sections being ``Funding Free Software'', the Front-Cover
19Texts being (a) (see below), and with the Back-Cover Texts being (b)
20(see below).  A copy of the license is included in the section entitled
21``GNU Free Documentation License''.
22
23(a) The FSF's Front-Cover Text is:
24
25     A GNU Manual
26
27(b) The FSF's Back-Cover Text is:
28
29     You have freedom to copy and modify this GNU Manual, like GNU
30     software.  Copies published by the Free Software Foundation raise
31     funds for GNU development.-->
32<meta http-equiv="Content-Style-Type" content="text/css">
33<style type="text/css"><!--
34  pre.display { font-family:inherit }
35  pre.format  { font-family:inherit }
36  pre.smalldisplay { font-family:inherit; font-size:smaller }
37  pre.smallformat  { font-family:inherit; font-size:smaller }
38  pre.smallexample { font-size:smaller }
39  pre.smalllisp    { font-size:smaller }
40  span.sc    { font-variant:small-caps }
41  span.roman { font-family:serif; font-weight:normal; } 
42  span.sansserif { font-family:sans-serif; font-weight:normal; } 
43--></style>
44<link rel="stylesheet" type="text/css" href="../cs.css">
45</head>
46<body>
47<div class="node">
48<a name="V850-Options"></a>
49<p>
50Next:&nbsp;<a rel="next" accesskey="n" href="VAX-Options.html#VAX-Options">VAX Options</a>,
51Previous:&nbsp;<a rel="previous" accesskey="p" href="TILEPro-Options.html#TILEPro-Options">TILEPro Options</a>,
52Up:&nbsp;<a rel="up" accesskey="u" href="Submodel-Options.html#Submodel-Options">Submodel Options</a>
53<hr>
54</div>
55
56<h4 class="subsection">3.17.45 V850 Options</h4>
57
58<p><a name="index-V850-Options-2270"></a>
59These &lsquo;<samp><span class="samp">-m</span></samp>&rsquo; options are defined for V850 implementations:
60
61     <dl>
62<dt><code>-mlong-calls</code><dt><code>-mno-long-calls</code><dd><a name="index-mlong_002dcalls-2271"></a><a name="index-mno_002dlong_002dcalls-2272"></a>Treat all calls as being far away (near).  If calls are assumed to be
63far away, the compiler always loads the function's address into a
64register, and calls indirect through the pointer.
65
66     <br><dt><code>-mno-ep</code><dt><code>-mep</code><dd><a name="index-mno_002dep-2273"></a><a name="index-mep-2274"></a>Do not optimize (do optimize) basic blocks that use the same index
67pointer 4 or more times to copy pointer into the <code>ep</code> register, and
68use the shorter <code>sld</code> and <code>sst</code> instructions.  The <samp><span class="option">-mep</span></samp>
69option is on by default if you optimize.
70
71     <br><dt><code>-mno-prolog-function</code><dt><code>-mprolog-function</code><dd><a name="index-mno_002dprolog_002dfunction-2275"></a><a name="index-mprolog_002dfunction-2276"></a>Do not use (do use) external functions to save and restore registers
72at the prologue and epilogue of a function.  The external functions
73are slower, but use less code space if more than one function saves
74the same number of registers.  The <samp><span class="option">-mprolog-function</span></samp> option
75is on by default if you optimize.
76
77     <br><dt><code>-mspace</code><dd><a name="index-mspace-2277"></a>Try to make the code as small as possible.  At present, this just turns
78on the <samp><span class="option">-mep</span></samp> and <samp><span class="option">-mprolog-function</span></samp> options.
79
80     <br><dt><code>-mtda=</code><var>n</var><dd><a name="index-mtda-2278"></a>Put static or global variables whose size is <var>n</var> bytes or less into
81the tiny data area that register <code>ep</code> points to.  The tiny data
82area can hold up to 256 bytes in total (128 bytes for byte references).
83
84     <br><dt><code>-msda=</code><var>n</var><dd><a name="index-msda-2279"></a>Put static or global variables whose size is <var>n</var> bytes or less into
85the small data area that register <code>gp</code> points to.  The small data
86area can hold up to 64 kilobytes.
87
88     <br><dt><code>-mzda=</code><var>n</var><dd><a name="index-mzda-2280"></a>Put static or global variables whose size is <var>n</var> bytes or less into
89the first 32 kilobytes of memory.
90
91     <br><dt><code>-mv850</code><dd><a name="index-mv850-2281"></a>Specify that the target processor is the V850.
92
93     <br><dt><code>-mv850e3v5</code><dd><a name="index-mv850e3v5-2282"></a>Specify that the target processor is the V850E3V5.  The preprocessor
94constant &lsquo;<samp><span class="samp">__v850e3v5__</span></samp>&rsquo; is defined if this option is used.
95
96     <br><dt><code>-mv850e2v4</code><dd><a name="index-mv850e2v4-2283"></a>Specify that the target processor is the V850E3V5.  This is an alias for
97the <samp><span class="option">-mv850e3v5</span></samp> option.
98
99     <br><dt><code>-mv850e2v3</code><dd><a name="index-mv850e2v3-2284"></a>Specify that the target processor is the V850E2V3.  The preprocessor
100constant &lsquo;<samp><span class="samp">__v850e2v3__</span></samp>&rsquo; is defined if this option is used.
101
102     <br><dt><code>-mv850e2</code><dd><a name="index-mv850e2-2285"></a>Specify that the target processor is the V850E2.  The preprocessor
103constant &lsquo;<samp><span class="samp">__v850e2__</span></samp>&rsquo; is defined if this option is used.
104
105     <br><dt><code>-mv850e1</code><dd><a name="index-mv850e1-2286"></a>Specify that the target processor is the V850E1.  The preprocessor
106constants &lsquo;<samp><span class="samp">__v850e1__</span></samp>&rsquo; and &lsquo;<samp><span class="samp">__v850e__</span></samp>&rsquo; are defined if
107this option is used.
108
109     <br><dt><code>-mv850es</code><dd><a name="index-mv850es-2287"></a>Specify that the target processor is the V850ES.  This is an alias for
110the <samp><span class="option">-mv850e1</span></samp> option.
111
112     <br><dt><code>-mv850e</code><dd><a name="index-mv850e-2288"></a>Specify that the target processor is the V850E.  The preprocessor
113constant &lsquo;<samp><span class="samp">__v850e__</span></samp>&rsquo; is defined if this option is used.
114
115     <p>If neither <samp><span class="option">-mv850</span></samp> nor <samp><span class="option">-mv850e</span></samp> nor <samp><span class="option">-mv850e1</span></samp>
116nor <samp><span class="option">-mv850e2</span></samp> nor <samp><span class="option">-mv850e2v3</span></samp> nor <samp><span class="option">-mv850e3v5</span></samp>
117are defined then a default target processor is chosen and the
118relevant &lsquo;<samp><span class="samp">__v850*__</span></samp>&rsquo; preprocessor constant is defined.
119
120     <p>The preprocessor constants &lsquo;<samp><span class="samp">__v850</span></samp>&rsquo; and &lsquo;<samp><span class="samp">__v851__</span></samp>&rsquo; are always
121defined, regardless of which processor variant is the target.
122
123     <br><dt><code>-mdisable-callt</code><dt><code>-mno-disable-callt</code><dd><a name="index-mdisable_002dcallt-2289"></a><a name="index-mno_002ddisable_002dcallt-2290"></a>This option suppresses generation of the <code>CALLT</code> instruction for the
124v850e, v850e1, v850e2, v850e2v3 and v850e3v5 flavors of the v850
125architecture.
126
127     <p>This option is enabled by default when the RH850 ABI is
128in use (see <samp><span class="option">-mrh850-abi</span></samp>), and disabled by default when the
129GCC ABI is in use.  If <code>CALLT</code> instructions are being generated
130then the C preprocessor symbol <code>__V850_CALLT__</code> will be defined.
131
132     <br><dt><code>-mrelax</code><dt><code>-mno-relax</code><dd><a name="index-mrelax-2291"></a><a name="index-mno_002drelax-2292"></a>Pass on (or do not pass on) the <samp><span class="option">-mrelax</span></samp> command line option
133to the assembler.
134
135     <br><dt><code>-mlong-jumps</code><dt><code>-mno-long-jumps</code><dd><a name="index-mlong_002djumps-2293"></a><a name="index-mno_002dlong_002djumps-2294"></a>Disable (or re-enable) the generation of PC-relative jump instructions.
136
137     <br><dt><code>-msoft-float</code><dt><code>-mhard-float</code><dd><a name="index-msoft_002dfloat-2295"></a><a name="index-mhard_002dfloat-2296"></a>Disable (or re-enable) the generation of hardware floating point
138instructions.  This option is only significant when the target
139architecture is &lsquo;<samp><span class="samp">V850E2V3</span></samp>&rsquo; or higher.  If hardware floating point
140instructions are being generated then the C preprocessor symbol
141<code>__FPU_OK__</code> will be defined, otherwise the symbol
142<code>__NO_FPU__</code> will be defined.
143
144     <br><dt><code>-mloop</code><dd><a name="index-mloop-2297"></a>Enables the use of the e3v5 LOOP instruction.  The use of this
145instruction is not enabled by default when the e3v5 architecture is
146selected because its use is still experimental.
147
148     <br><dt><code>-mrh850-abi</code><dt><code>-mghs</code><dd><a name="index-mrh850_002dabi-2298"></a><a name="index-mghs-2299"></a>Enables support for the RH850 version of the V850 ABI.  This is the
149default.  With this version of the ABI the following rules apply:
150
151          <ul>
152<li>Integer sized structures and unions are returned via a memory pointer
153rather than a register.
154
155          <li>Large structures and unions (more than 8 bytes in size) are passed by
156value.
157
158          <li>Functions are aligned to 16-bit boundaries.
159
160          <li>The <samp><span class="option">-m8byte-align</span></samp> command line option is supported.
161
162          <li>The <samp><span class="option">-mdisable-callt</span></samp> command line option is enabled by
163default.  The <samp><span class="option">-mno-disable-callt</span></samp> command line option is not
164supported. 
165</ul>
166
167     <p>When this version of the ABI is enabled the C preprocessor symbol
168<code>__V850_RH850_ABI__</code> is defined.
169
170     <br><dt><code>-mgcc-abi</code><dd><a name="index-mgcc_002dabi-2300"></a>Enables support for the old GCC version of the V850 ABI.  With this
171version of the ABI the following rules apply:
172
173          <ul>
174<li>Integer sized structures and unions are returned in register <code>r10</code>.
175
176          <li>Large structures and unions (more than 8 bytes in size) are passed by
177reference.
178
179          <li>Functions are aligned to 32-bit boundaries, unless optimizing for
180size.
181
182          <li>The <samp><span class="option">-m8byte-align</span></samp> command line option is not supported.
183
184          <li>The <samp><span class="option">-mdisable-callt</span></samp> command line option is supported but not
185enabled by default. 
186</ul>
187
188     <p>When this version of the ABI is enabled the C preprocessor symbol
189<code>__V850_GCC_ABI__</code> is defined.
190
191     <br><dt><code>-m8byte-align</code><dt><code>-mno-8byte-align</code><dd><a name="index-m8byte_002dalign-2301"></a><a name="index-mno_002d8byte_002dalign-2302"></a>Enables support for <code>doubles</code> and <code>long long</code> types to be
192aligned on 8-byte boundaries.  The default is to restrict the
193alignment of all objects to at most 4-bytes.  When
194<samp><span class="option">-m8byte-align</span></samp> is in effect the C preprocessor symbol
195<code>__V850_8BYTE_ALIGN__</code> will be defined.
196
197     <br><dt><code>-mbig-switch</code><dd><a name="index-mbig_002dswitch-2303"></a>Generate code suitable for big switch tables.  Use this option only if
198the assembler/linker complain about out of range branches within a switch
199table.
200
201     <br><dt><code>-mapp-regs</code><dd><a name="index-mapp_002dregs-2304"></a>This option causes r2 and r5 to be used in the code generated by
202the compiler.  This setting is the default.
203
204     <br><dt><code>-mno-app-regs</code><dd><a name="index-mno_002dapp_002dregs-2305"></a>This option causes r2 and r5 to be treated as fixed registers.
205
206 </dl>
207
208 </body></html>
209
210