| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <!-- Copyright (C) 1988-2015 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 5.2, http://www.gnu.org/software/texinfo/ --> |
| <head> |
| <title>Using the GNU Compiler Collection (GCC): Xtensa Options</title> |
| |
| <meta name="description" content="Using the GNU Compiler Collection (GCC): Xtensa Options"> |
| <meta name="keywords" content="Using the GNU Compiler Collection (GCC): Xtensa Options"> |
| <meta name="resource-type" content="document"> |
| <meta name="distribution" content="global"> |
| <meta name="Generator" content="makeinfo"> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <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.smallquotation {font-size: smaller} |
| div.display {margin-left: 3.2em} |
| div.example {margin-left: 3.2em} |
| div.indentedblock {margin-left: 3.2em} |
| div.lisp {margin-left: 3.2em} |
| div.smalldisplay {margin-left: 3.2em} |
| div.smallexample {margin-left: 3.2em} |
| div.smallindentedblock {margin-left: 3.2em; font-size: smaller} |
| 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.nocodebreak {white-space:nowrap} |
| span.nolinebreak {white-space:nowrap} |
| span.roman {font-family:serif; font-weight:normal} |
| span.sansserif {font-family:sans-serif; font-weight:normal} |
| ul.no-bullet {list-style: none} |
| --> |
| </style> |
| |
| |
| </head> |
| |
| <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> |
| <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.17.55 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>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. |
| </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> |