|
- <!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>Xtensa Options (Using the GNU Compiler Collection (GCC))</title>
-
- <meta name="description" content="Xtensa Options (Using the GNU Compiler Collection (GCC))">
- <meta name="keywords" content="Xtensa 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="zSeries-Options.html#zSeries-Options" rel="next" title="zSeries Options">
- <link href="Xstormy16-Options.html#Xstormy16-Options" rel="prev" title="Xstormy16 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="Xtensa-Options"></a>
- <div class="header">
- <p>
- Next: <a href="zSeries-Options.html#zSeries-Options" accesskey="n" rel="next">zSeries Options</a>, Previous: <a href="Xstormy16-Options.html#Xstormy16-Options" accesskey="p" rel="prev">Xstormy16 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="Xtensa-Options-1"></a>
- <h4 class="subsection">3.19.62 Xtensa Options</h4>
- <a name="index-Xtensa-Options"></a>
-
- <p>These options are supported for Xtensa targets:
- </p>
- <dl compact="compact">
- <dt><code>-mconst16</code></dt>
- <dt><code>-mno-const16</code></dt>
- <dd><a name="index-mconst16"></a>
- <a name="index-mno_002dconst16"></a>
- <p>Enable or disable use of <code>CONST16</code> instructions for loading
- constant values. The <code>CONST16</code> instruction is currently not a
- standard option from Tensilica. When enabled, <code>CONST16</code>
- instructions are always used in place of the standard <code>L32R</code>
- instructions. The use of <code>CONST16</code> is enabled by default only if
- the <code>L32R</code> instruction is not available.
- </p>
- </dd>
- <dt><code>-mfused-madd</code></dt>
- <dt><code>-mno-fused-madd</code></dt>
- <dd><a name="index-mfused_002dmadd-5"></a>
- <a name="index-mno_002dfused_002dmadd-5"></a>
- <p>Enable or disable use of fused multiply/add and multiply/subtract
- instructions in the floating-point option. This has no effect if the
- floating-point option is not also enabled. Disabling fused multiply/add
- and multiply/subtract instructions forces the compiler to use separate
- instructions for the multiply and add/subtract operations. This may be
- desirable in some cases where strict IEEE 754-compliant results are
- required: the fused multiply add/subtract instructions do not round the
- intermediate result, thereby producing results with <em>more</em> bits of
- precision than specified by the IEEE standard. Disabling fused multiply
- add/subtract instructions also ensures that the program output is not
- sensitive to the compiler’s ability to combine multiply and add/subtract
- operations.
- </p>
- </dd>
- <dt><code>-mserialize-volatile</code></dt>
- <dt><code>-mno-serialize-volatile</code></dt>
- <dd><a name="index-mserialize_002dvolatile"></a>
- <a name="index-mno_002dserialize_002dvolatile"></a>
- <p>When this option is enabled, GCC inserts <code>MEMW</code> instructions before
- <code>volatile</code> memory references to guarantee sequential consistency.
- The default is <samp>-mserialize-volatile</samp>. Use
- <samp>-mno-serialize-volatile</samp> to omit the <code>MEMW</code> instructions.
- </p>
- </dd>
- <dt><code>-mforce-no-pic</code></dt>
- <dd><a name="index-mforce_002dno_002dpic"></a>
- <p>For targets, like GNU/Linux, where all user-mode Xtensa code must be
- position-independent code (PIC), this option disables PIC for compiling
- kernel code.
- </p>
- </dd>
- <dt><code>-mtext-section-literals</code></dt>
- <dt><code>-mno-text-section-literals</code></dt>
- <dd><a name="index-mtext_002dsection_002dliterals"></a>
- <a name="index-mno_002dtext_002dsection_002dliterals"></a>
- <p>These options control the treatment of literal pools. The default is
- <samp>-mno-text-section-literals</samp>, which places literals in a separate
- section in the output file. This allows the literal pool to be placed
- in a data RAM/ROM, and it also allows the linker to combine literal
- pools from separate object files to remove redundant literals and
- improve code size. With <samp>-mtext-section-literals</samp>, the literals
- are interspersed in the text section in order to keep them as close as
- possible to their references. This may be necessary for large assembly
- files. Literals for each function are placed right before that function.
- </p>
- </dd>
- <dt><code>-mauto-litpools</code></dt>
- <dt><code>-mno-auto-litpools</code></dt>
- <dd><a name="index-mauto_002dlitpools"></a>
- <a name="index-mno_002dauto_002dlitpools"></a>
- <p>These options control the treatment of literal pools. The default is
- <samp>-mno-auto-litpools</samp>, which places literals in a separate
- section in the output file unless <samp>-mtext-section-literals</samp> is
- used. With <samp>-mauto-litpools</samp> the literals are interspersed in
- the text section by the assembler. Compiler does not produce explicit
- <code>.literal</code> directives and loads literals into registers with
- <code>MOVI</code> instructions instead of <code>L32R</code> to let the assembler
- do relaxation and place literals as necessary. This option allows
- assembler to create several literal pools per function and assemble
- very big functions, which may not be possible with
- <samp>-mtext-section-literals</samp>.
- </p>
- </dd>
- <dt><code>-mtarget-align</code></dt>
- <dt><code>-mno-target-align</code></dt>
- <dd><a name="index-mtarget_002dalign"></a>
- <a name="index-mno_002dtarget_002dalign"></a>
- <p>When this option is enabled, GCC instructs the assembler to
- automatically align instructions to reduce branch penalties at the
- expense of some code density. The assembler attempts to widen density
- instructions to align branch targets and the instructions following call
- instructions. If there are not enough preceding safe density
- instructions to align a target, no widening is performed. The
- default is <samp>-mtarget-align</samp>. These options do not affect the
- treatment of auto-aligned instructions like <code>LOOP</code>, which the
- assembler always aligns, either by widening density instructions or
- by inserting NOP instructions.
- </p>
- </dd>
- <dt><code>-mlongcalls</code></dt>
- <dt><code>-mno-longcalls</code></dt>
- <dd><a name="index-mlongcalls"></a>
- <a name="index-mno_002dlongcalls"></a>
- <p>When this option is enabled, GCC instructs the assembler to translate
- direct calls to indirect calls unless it can determine that the target
- of a direct call is in the range allowed by the call instruction. This
- translation typically occurs for calls to functions in other source
- files. Specifically, the assembler translates a direct <code>CALL</code>
- instruction into an <code>L32R</code> followed by a <code>CALLX</code> instruction.
- The default is <samp>-mno-longcalls</samp>. This option should be used in
- programs where the call target can potentially be out of range. This
- option is implemented in the assembler, not the compiler, so the
- assembly code generated by GCC still shows direct call
- instructions—look at the disassembled object code to see the actual
- instructions. Note that the assembler uses an indirect call for
- every cross-file call, not just those that really are out of range.
- </p></dd>
- </dl>
-
- <hr>
- <div class="header">
- <p>
- Next: <a href="zSeries-Options.html#zSeries-Options" accesskey="n" rel="next">zSeries Options</a>, Previous: <a href="Xstormy16-Options.html#Xstormy16-Options" accesskey="p" rel="prev">Xstormy16 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>
|