You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

335 line
13KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>V850 Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="V850 Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="V850 Options (Using the GNU Compiler Collection (GCC))">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
  30. <link href="VAX-Options.html#VAX-Options" rel="next" title="VAX Options">
  31. <link href="TILEPro-Options.html#TILEPro-Options" rel="prev" title="TILEPro Options">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="V850-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="VAX-Options.html#VAX-Options" accesskey="n" rel="next">VAX Options</a>, Previous: <a href="TILEPro-Options.html#TILEPro-Options" accesskey="p" rel="prev">TILEPro Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="V850-Options-1"></a>
  68. <h4 class="subsection">3.19.54 V850 Options</h4>
  69. <a name="index-V850-Options"></a>
  70. <p>These &lsquo;<samp>-m</samp>&rsquo; options are defined for V850 implementations:
  71. </p>
  72. <dl compact="compact">
  73. <dt><code>-mlong-calls</code></dt>
  74. <dt><code>-mno-long-calls</code></dt>
  75. <dd><a name="index-mlong_002dcalls-7"></a>
  76. <a name="index-mno_002dlong_002dcalls-4"></a>
  77. <p>Treat all calls as being far away (near). If calls are assumed to be
  78. far away, the compiler always loads the function&rsquo;s address into a
  79. register, and calls indirect through the pointer.
  80. </p>
  81. </dd>
  82. <dt><code>-mno-ep</code></dt>
  83. <dt><code>-mep</code></dt>
  84. <dd><a name="index-mno_002dep"></a>
  85. <a name="index-mep"></a>
  86. <p>Do not optimize (do optimize) basic blocks that use the same index
  87. pointer 4 or more times to copy pointer into the <code>ep</code> register, and
  88. use the shorter <code>sld</code> and <code>sst</code> instructions. The <samp>-mep</samp>
  89. option is on by default if you optimize.
  90. </p>
  91. </dd>
  92. <dt><code>-mno-prolog-function</code></dt>
  93. <dt><code>-mprolog-function</code></dt>
  94. <dd><a name="index-mno_002dprolog_002dfunction"></a>
  95. <a name="index-mprolog_002dfunction"></a>
  96. <p>Do not use (do use) external functions to save and restore registers
  97. at the prologue and epilogue of a function. The external functions
  98. are slower, but use less code space if more than one function saves
  99. the same number of registers. The <samp>-mprolog-function</samp> option
  100. is on by default if you optimize.
  101. </p>
  102. </dd>
  103. <dt><code>-mspace</code></dt>
  104. <dd><a name="index-mspace"></a>
  105. <p>Try to make the code as small as possible. At present, this just turns
  106. on the <samp>-mep</samp> and <samp>-mprolog-function</samp> options.
  107. </p>
  108. </dd>
  109. <dt><code>-mtda=<var>n</var></code></dt>
  110. <dd><a name="index-mtda"></a>
  111. <p>Put static or global variables whose size is <var>n</var> bytes or less into
  112. the tiny data area that register <code>ep</code> points to. The tiny data
  113. area can hold up to 256 bytes in total (128 bytes for byte references).
  114. </p>
  115. </dd>
  116. <dt><code>-msda=<var>n</var></code></dt>
  117. <dd><a name="index-msda"></a>
  118. <p>Put static or global variables whose size is <var>n</var> bytes or less into
  119. the small data area that register <code>gp</code> points to. The small data
  120. area can hold up to 64 kilobytes.
  121. </p>
  122. </dd>
  123. <dt><code>-mzda=<var>n</var></code></dt>
  124. <dd><a name="index-mzda"></a>
  125. <p>Put static or global variables whose size is <var>n</var> bytes or less into
  126. the first 32 kilobytes of memory.
  127. </p>
  128. </dd>
  129. <dt><code>-mv850</code></dt>
  130. <dd><a name="index-mv850"></a>
  131. <p>Specify that the target processor is the V850.
  132. </p>
  133. </dd>
  134. <dt><code>-mv850e3v5</code></dt>
  135. <dd><a name="index-mv850e3v5"></a>
  136. <p>Specify that the target processor is the V850E3V5. The preprocessor
  137. constant <code>__v850e3v5__</code> is defined if this option is used.
  138. </p>
  139. </dd>
  140. <dt><code>-mv850e2v4</code></dt>
  141. <dd><a name="index-mv850e2v4"></a>
  142. <p>Specify that the target processor is the V850E3V5. This is an alias for
  143. the <samp>-mv850e3v5</samp> option.
  144. </p>
  145. </dd>
  146. <dt><code>-mv850e2v3</code></dt>
  147. <dd><a name="index-mv850e2v3"></a>
  148. <p>Specify that the target processor is the V850E2V3. The preprocessor
  149. constant <code>__v850e2v3__</code> is defined if this option is used.
  150. </p>
  151. </dd>
  152. <dt><code>-mv850e2</code></dt>
  153. <dd><a name="index-mv850e2"></a>
  154. <p>Specify that the target processor is the V850E2. The preprocessor
  155. constant <code>__v850e2__</code> is defined if this option is used.
  156. </p>
  157. </dd>
  158. <dt><code>-mv850e1</code></dt>
  159. <dd><a name="index-mv850e1"></a>
  160. <p>Specify that the target processor is the V850E1. The preprocessor
  161. constants <code>__v850e1__</code> and <code>__v850e__</code> are defined if
  162. this option is used.
  163. </p>
  164. </dd>
  165. <dt><code>-mv850es</code></dt>
  166. <dd><a name="index-mv850es"></a>
  167. <p>Specify that the target processor is the V850ES. This is an alias for
  168. the <samp>-mv850e1</samp> option.
  169. </p>
  170. </dd>
  171. <dt><code>-mv850e</code></dt>
  172. <dd><a name="index-mv850e"></a>
  173. <p>Specify that the target processor is the V850E. The preprocessor
  174. constant <code>__v850e__</code> is defined if this option is used.
  175. </p>
  176. <p>If neither <samp>-mv850</samp> nor <samp>-mv850e</samp> nor <samp>-mv850e1</samp>
  177. nor <samp>-mv850e2</samp> nor <samp>-mv850e2v3</samp> nor <samp>-mv850e3v5</samp>
  178. are defined then a default target processor is chosen and the
  179. relevant &lsquo;<samp>__v850*__</samp>&rsquo; preprocessor constant is defined.
  180. </p>
  181. <p>The preprocessor constants <code>__v850</code> and <code>__v851__</code> are always
  182. defined, regardless of which processor variant is the target.
  183. </p>
  184. </dd>
  185. <dt><code>-mdisable-callt</code></dt>
  186. <dt><code>-mno-disable-callt</code></dt>
  187. <dd><a name="index-mdisable_002dcallt"></a>
  188. <a name="index-mno_002ddisable_002dcallt"></a>
  189. <p>This option suppresses generation of the <code>CALLT</code> instruction for the
  190. v850e, v850e1, v850e2, v850e2v3 and v850e3v5 flavors of the v850
  191. architecture.
  192. </p>
  193. <p>This option is enabled by default when the RH850 ABI is
  194. in use (see <samp>-mrh850-abi</samp>), and disabled by default when the
  195. GCC ABI is in use. If <code>CALLT</code> instructions are being generated
  196. then the C preprocessor symbol <code>__V850_CALLT__</code> is defined.
  197. </p>
  198. </dd>
  199. <dt><code>-mrelax</code></dt>
  200. <dt><code>-mno-relax</code></dt>
  201. <dd><a name="index-mrelax-7"></a>
  202. <a name="index-mno_002drelax-1"></a>
  203. <p>Pass on (or do not pass on) the <samp>-mrelax</samp> command-line option
  204. to the assembler.
  205. </p>
  206. </dd>
  207. <dt><code>-mlong-jumps</code></dt>
  208. <dt><code>-mno-long-jumps</code></dt>
  209. <dd><a name="index-mlong_002djumps"></a>
  210. <a name="index-mno_002dlong_002djumps"></a>
  211. <p>Disable (or re-enable) the generation of PC-relative jump instructions.
  212. </p>
  213. </dd>
  214. <dt><code>-msoft-float</code></dt>
  215. <dt><code>-mhard-float</code></dt>
  216. <dd><a name="index-msoft_002dfloat-13"></a>
  217. <a name="index-mhard_002dfloat-9"></a>
  218. <p>Disable (or re-enable) the generation of hardware floating point
  219. instructions. This option is only significant when the target
  220. architecture is &lsquo;<samp>V850E2V3</samp>&rsquo; or higher. If hardware floating point
  221. instructions are being generated then the C preprocessor symbol
  222. <code>__FPU_OK__</code> is defined, otherwise the symbol
  223. <code>__NO_FPU__</code> is defined.
  224. </p>
  225. </dd>
  226. <dt><code>-mloop</code></dt>
  227. <dd><a name="index-mloop-1"></a>
  228. <p>Enables the use of the e3v5 LOOP instruction. The use of this
  229. instruction is not enabled by default when the e3v5 architecture is
  230. selected because its use is still experimental.
  231. </p>
  232. </dd>
  233. <dt><code>-mrh850-abi</code></dt>
  234. <dt><code>-mghs</code></dt>
  235. <dd><a name="index-mrh850_002dabi"></a>
  236. <a name="index-mghs"></a>
  237. <p>Enables support for the RH850 version of the V850 ABI. This is the
  238. default. With this version of the ABI the following rules apply:
  239. </p>
  240. <ul>
  241. <li> Integer sized structures and unions are returned via a memory pointer
  242. rather than a register.
  243. </li><li> Large structures and unions (more than 8 bytes in size) are passed by
  244. value.
  245. </li><li> Functions are aligned to 16-bit boundaries.
  246. </li><li> The <samp>-m8byte-align</samp> command-line option is supported.
  247. </li><li> The <samp>-mdisable-callt</samp> command-line option is enabled by
  248. default. The <samp>-mno-disable-callt</samp> command-line option is not
  249. supported.
  250. </li></ul>
  251. <p>When this version of the ABI is enabled the C preprocessor symbol
  252. <code>__V850_RH850_ABI__</code> is defined.
  253. </p>
  254. </dd>
  255. <dt><code>-mgcc-abi</code></dt>
  256. <dd><a name="index-mgcc_002dabi"></a>
  257. <p>Enables support for the old GCC version of the V850 ABI. With this
  258. version of the ABI the following rules apply:
  259. </p>
  260. <ul>
  261. <li> Integer sized structures and unions are returned in register <code>r10</code>.
  262. </li><li> Large structures and unions (more than 8 bytes in size) are passed by
  263. reference.
  264. </li><li> Functions are aligned to 32-bit boundaries, unless optimizing for
  265. size.
  266. </li><li> The <samp>-m8byte-align</samp> command-line option is not supported.
  267. </li><li> The <samp>-mdisable-callt</samp> command-line option is supported but not
  268. enabled by default.
  269. </li></ul>
  270. <p>When this version of the ABI is enabled the C preprocessor symbol
  271. <code>__V850_GCC_ABI__</code> is defined.
  272. </p>
  273. </dd>
  274. <dt><code>-m8byte-align</code></dt>
  275. <dt><code>-mno-8byte-align</code></dt>
  276. <dd><a name="index-m8byte_002dalign"></a>
  277. <a name="index-mno_002d8byte_002dalign"></a>
  278. <p>Enables support for <code>double</code> and <code>long long</code> types to be
  279. aligned on 8-byte boundaries. The default is to restrict the
  280. alignment of all objects to at most 4-bytes. When
  281. <samp>-m8byte-align</samp> is in effect the C preprocessor symbol
  282. <code>__V850_8BYTE_ALIGN__</code> is defined.
  283. </p>
  284. </dd>
  285. <dt><code>-mbig-switch</code></dt>
  286. <dd><a name="index-mbig_002dswitch"></a>
  287. <p>Generate code suitable for big switch tables. Use this option only if
  288. the assembler/linker complain about out of range branches within a switch
  289. table.
  290. </p>
  291. </dd>
  292. <dt><code>-mapp-regs</code></dt>
  293. <dd><a name="index-mapp_002dregs-1"></a>
  294. <p>This option causes r2 and r5 to be used in the code generated by
  295. the compiler. This setting is the default.
  296. </p>
  297. </dd>
  298. <dt><code>-mno-app-regs</code></dt>
  299. <dd><a name="index-mno_002dapp_002dregs-1"></a>
  300. <p>This option causes r2 and r5 to be treated as fixed registers.
  301. </p>
  302. </dd>
  303. </dl>
  304. <hr>
  305. <div class="header">
  306. <p>
  307. Next: <a href="VAX-Options.html#VAX-Options" accesskey="n" rel="next">VAX Options</a>, Previous: <a href="TILEPro-Options.html#TILEPro-Options" accesskey="p" rel="prev">TILEPro Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  308. </div>
  309. </body>
  310. </html>