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: <a rel="next" accesskey="n" href="VAX-Options.html#VAX-Options">VAX Options</a>, 51Previous: <a rel="previous" accesskey="p" href="TILEPro-Options.html#TILEPro-Options">TILEPro Options</a>, 52Up: <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 ‘<samp><span class="samp">-m</span></samp>’ 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 ‘<samp><span class="samp">__v850e3v5__</span></samp>’ 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 ‘<samp><span class="samp">__v850e2v3__</span></samp>’ 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 ‘<samp><span class="samp">__v850e2__</span></samp>’ 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 ‘<samp><span class="samp">__v850e1__</span></samp>’ and ‘<samp><span class="samp">__v850e__</span></samp>’ 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 ‘<samp><span class="samp">__v850e__</span></samp>’ 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 ‘<samp><span class="samp">__v850*__</span></samp>’ preprocessor constant is defined. 119 120 <p>The preprocessor constants ‘<samp><span class="samp">__v850</span></samp>’ and ‘<samp><span class="samp">__v851__</span></samp>’ 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 ‘<samp><span class="samp">V850E2V3</span></samp>’ 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