|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with the
- Invariant Sections being "Funding Free Software", the Front-Cover
- Texts being (a) (see below), and with the Back-Cover Texts being (b)
- (see below). A copy of the license is included in the section entitled
- "GNU Free Documentation License".
-
- (a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
- (b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>V850 Options (Using the GNU Compiler Collection (GCC))</title>
-
- <meta name="description" content="V850 Options (Using the GNU Compiler Collection (GCC))">
- <meta name="keywords" content="V850 Options (Using the GNU Compiler Collection (GCC))">
- <meta name="resource-type" content="document">
- <meta name="distribution" content="global">
- <meta name="Generator" content="makeinfo">
- <link href="index.html#Top" rel="start" title="Top">
- <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
- <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
- <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
- <link href="VAX-Options.html#VAX-Options" rel="next" title="VAX Options">
- <link href="TILEPro-Options.html#TILEPro-Options" rel="prev" title="TILEPro Options">
- <style type="text/css">
- <!--
- a.summary-letter {text-decoration: none}
- blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
- div.display {margin-left: 3.2em}
- div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
- kbd {font-style: oblique}
- pre.display {font-family: inherit}
- pre.format {font-family: inherit}
- pre.menu-comment {font-family: serif}
- pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
- span.nolinebreak {white-space: nowrap}
- span.roman {font-family: initial; font-weight: normal}
- span.sansserif {font-family: sans-serif; font-weight: normal}
- ul.no-bullet {list-style: none}
- -->
- </style>
-
-
- </head>
-
- <body lang="en">
- <a name="V850-Options"></a>
- <div class="header">
- <p>
- 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> [<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>
- </div>
- <hr>
- <a name="V850-Options-1"></a>
- <h4 class="subsection">3.19.54 V850 Options</h4>
- <a name="index-V850-Options"></a>
-
- <p>These ‘<samp>-m</samp>’ options are defined for V850 implementations:
- </p>
- <dl compact="compact">
- <dt><code>-mlong-calls</code></dt>
- <dt><code>-mno-long-calls</code></dt>
- <dd><a name="index-mlong_002dcalls-7"></a>
- <a name="index-mno_002dlong_002dcalls-4"></a>
- <p>Treat all calls as being far away (near). If calls are assumed to be
- far away, the compiler always loads the function’s address into a
- register, and calls indirect through the pointer.
- </p>
- </dd>
- <dt><code>-mno-ep</code></dt>
- <dt><code>-mep</code></dt>
- <dd><a name="index-mno_002dep"></a>
- <a name="index-mep"></a>
- <p>Do not optimize (do optimize) basic blocks that use the same index
- pointer 4 or more times to copy pointer into the <code>ep</code> register, and
- use the shorter <code>sld</code> and <code>sst</code> instructions. The <samp>-mep</samp>
- option is on by default if you optimize.
- </p>
- </dd>
- <dt><code>-mno-prolog-function</code></dt>
- <dt><code>-mprolog-function</code></dt>
- <dd><a name="index-mno_002dprolog_002dfunction"></a>
- <a name="index-mprolog_002dfunction"></a>
- <p>Do not use (do use) external functions to save and restore registers
- at the prologue and epilogue of a function. The external functions
- are slower, but use less code space if more than one function saves
- the same number of registers. The <samp>-mprolog-function</samp> option
- is on by default if you optimize.
- </p>
- </dd>
- <dt><code>-mspace</code></dt>
- <dd><a name="index-mspace"></a>
- <p>Try to make the code as small as possible. At present, this just turns
- on the <samp>-mep</samp> and <samp>-mprolog-function</samp> options.
- </p>
- </dd>
- <dt><code>-mtda=<var>n</var></code></dt>
- <dd><a name="index-mtda"></a>
- <p>Put static or global variables whose size is <var>n</var> bytes or less into
- the tiny data area that register <code>ep</code> points to. The tiny data
- area can hold up to 256 bytes in total (128 bytes for byte references).
- </p>
- </dd>
- <dt><code>-msda=<var>n</var></code></dt>
- <dd><a name="index-msda"></a>
- <p>Put static or global variables whose size is <var>n</var> bytes or less into
- the small data area that register <code>gp</code> points to. The small data
- area can hold up to 64 kilobytes.
- </p>
- </dd>
- <dt><code>-mzda=<var>n</var></code></dt>
- <dd><a name="index-mzda"></a>
- <p>Put static or global variables whose size is <var>n</var> bytes or less into
- the first 32 kilobytes of memory.
- </p>
- </dd>
- <dt><code>-mv850</code></dt>
- <dd><a name="index-mv850"></a>
- <p>Specify that the target processor is the V850.
- </p>
- </dd>
- <dt><code>-mv850e3v5</code></dt>
- <dd><a name="index-mv850e3v5"></a>
- <p>Specify that the target processor is the V850E3V5. The preprocessor
- constant <code>__v850e3v5__</code> is defined if this option is used.
- </p>
- </dd>
- <dt><code>-mv850e2v4</code></dt>
- <dd><a name="index-mv850e2v4"></a>
- <p>Specify that the target processor is the V850E3V5. This is an alias for
- the <samp>-mv850e3v5</samp> option.
- </p>
- </dd>
- <dt><code>-mv850e2v3</code></dt>
- <dd><a name="index-mv850e2v3"></a>
- <p>Specify that the target processor is the V850E2V3. The preprocessor
- constant <code>__v850e2v3__</code> is defined if this option is used.
- </p>
- </dd>
- <dt><code>-mv850e2</code></dt>
- <dd><a name="index-mv850e2"></a>
- <p>Specify that the target processor is the V850E2. The preprocessor
- constant <code>__v850e2__</code> is defined if this option is used.
- </p>
- </dd>
- <dt><code>-mv850e1</code></dt>
- <dd><a name="index-mv850e1"></a>
- <p>Specify that the target processor is the V850E1. The preprocessor
- constants <code>__v850e1__</code> and <code>__v850e__</code> are defined if
- this option is used.
- </p>
- </dd>
- <dt><code>-mv850es</code></dt>
- <dd><a name="index-mv850es"></a>
- <p>Specify that the target processor is the V850ES. This is an alias for
- the <samp>-mv850e1</samp> option.
- </p>
- </dd>
- <dt><code>-mv850e</code></dt>
- <dd><a name="index-mv850e"></a>
- <p>Specify that the target processor is the V850E. The preprocessor
- constant <code>__v850e__</code> is defined if this option is used.
- </p>
- <p>If neither <samp>-mv850</samp> nor <samp>-mv850e</samp> nor <samp>-mv850e1</samp>
- nor <samp>-mv850e2</samp> nor <samp>-mv850e2v3</samp> nor <samp>-mv850e3v5</samp>
- are defined then a default target processor is chosen and the
- relevant ‘<samp>__v850*__</samp>’ preprocessor constant is defined.
- </p>
- <p>The preprocessor constants <code>__v850</code> and <code>__v851__</code> are always
- defined, regardless of which processor variant is the target.
- </p>
- </dd>
- <dt><code>-mdisable-callt</code></dt>
- <dt><code>-mno-disable-callt</code></dt>
- <dd><a name="index-mdisable_002dcallt"></a>
- <a name="index-mno_002ddisable_002dcallt"></a>
- <p>This option suppresses generation of the <code>CALLT</code> instruction for the
- v850e, v850e1, v850e2, v850e2v3 and v850e3v5 flavors of the v850
- architecture.
- </p>
- <p>This option is enabled by default when the RH850 ABI is
- in use (see <samp>-mrh850-abi</samp>), and disabled by default when the
- GCC ABI is in use. If <code>CALLT</code> instructions are being generated
- then the C preprocessor symbol <code>__V850_CALLT__</code> is defined.
- </p>
- </dd>
- <dt><code>-mrelax</code></dt>
- <dt><code>-mno-relax</code></dt>
- <dd><a name="index-mrelax-7"></a>
- <a name="index-mno_002drelax-1"></a>
- <p>Pass on (or do not pass on) the <samp>-mrelax</samp> command-line option
- to the assembler.
- </p>
- </dd>
- <dt><code>-mlong-jumps</code></dt>
- <dt><code>-mno-long-jumps</code></dt>
- <dd><a name="index-mlong_002djumps"></a>
- <a name="index-mno_002dlong_002djumps"></a>
- <p>Disable (or re-enable) the generation of PC-relative jump instructions.
- </p>
- </dd>
- <dt><code>-msoft-float</code></dt>
- <dt><code>-mhard-float</code></dt>
- <dd><a name="index-msoft_002dfloat-13"></a>
- <a name="index-mhard_002dfloat-9"></a>
- <p>Disable (or re-enable) the generation of hardware floating point
- instructions. This option is only significant when the target
- architecture is ‘<samp>V850E2V3</samp>’ or higher. If hardware floating point
- instructions are being generated then the C preprocessor symbol
- <code>__FPU_OK__</code> is defined, otherwise the symbol
- <code>__NO_FPU__</code> is defined.
- </p>
- </dd>
- <dt><code>-mloop</code></dt>
- <dd><a name="index-mloop-1"></a>
- <p>Enables the use of the e3v5 LOOP instruction. The use of this
- instruction is not enabled by default when the e3v5 architecture is
- selected because its use is still experimental.
- </p>
- </dd>
- <dt><code>-mrh850-abi</code></dt>
- <dt><code>-mghs</code></dt>
- <dd><a name="index-mrh850_002dabi"></a>
- <a name="index-mghs"></a>
- <p>Enables support for the RH850 version of the V850 ABI. This is the
- default. With this version of the ABI the following rules apply:
- </p>
- <ul>
- <li> Integer sized structures and unions are returned via a memory pointer
- rather than a register.
-
- </li><li> Large structures and unions (more than 8 bytes in size) are passed by
- value.
-
- </li><li> Functions are aligned to 16-bit boundaries.
-
- </li><li> The <samp>-m8byte-align</samp> command-line option is supported.
-
- </li><li> The <samp>-mdisable-callt</samp> command-line option is enabled by
- default. The <samp>-mno-disable-callt</samp> command-line option is not
- supported.
- </li></ul>
-
- <p>When this version of the ABI is enabled the C preprocessor symbol
- <code>__V850_RH850_ABI__</code> is defined.
- </p>
- </dd>
- <dt><code>-mgcc-abi</code></dt>
- <dd><a name="index-mgcc_002dabi"></a>
- <p>Enables support for the old GCC version of the V850 ABI. With this
- version of the ABI the following rules apply:
- </p>
- <ul>
- <li> Integer sized structures and unions are returned in register <code>r10</code>.
-
- </li><li> Large structures and unions (more than 8 bytes in size) are passed by
- reference.
-
- </li><li> Functions are aligned to 32-bit boundaries, unless optimizing for
- size.
-
- </li><li> The <samp>-m8byte-align</samp> command-line option is not supported.
-
- </li><li> The <samp>-mdisable-callt</samp> command-line option is supported but not
- enabled by default.
- </li></ul>
-
- <p>When this version of the ABI is enabled the C preprocessor symbol
- <code>__V850_GCC_ABI__</code> is defined.
- </p>
- </dd>
- <dt><code>-m8byte-align</code></dt>
- <dt><code>-mno-8byte-align</code></dt>
- <dd><a name="index-m8byte_002dalign"></a>
- <a name="index-mno_002d8byte_002dalign"></a>
- <p>Enables support for <code>double</code> and <code>long long</code> types to be
- aligned on 8-byte boundaries. The default is to restrict the
- alignment of all objects to at most 4-bytes. When
- <samp>-m8byte-align</samp> is in effect the C preprocessor symbol
- <code>__V850_8BYTE_ALIGN__</code> is defined.
- </p>
- </dd>
- <dt><code>-mbig-switch</code></dt>
- <dd><a name="index-mbig_002dswitch"></a>
- <p>Generate code suitable for big switch tables. Use this option only if
- the assembler/linker complain about out of range branches within a switch
- table.
- </p>
- </dd>
- <dt><code>-mapp-regs</code></dt>
- <dd><a name="index-mapp_002dregs-1"></a>
- <p>This option causes r2 and r5 to be used in the code generated by
- the compiler. This setting is the default.
- </p>
- </dd>
- <dt><code>-mno-app-regs</code></dt>
- <dd><a name="index-mno_002dapp_002dregs-1"></a>
- <p>This option causes r2 and r5 to be treated as fixed registers.
- </p>
- </dd>
- </dl>
-
- <hr>
- <div class="header">
- <p>
- 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> [<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>
- </div>
-
-
-
- </body>
- </html>
|