📄 xtensa-options.html
字号:
<html lang="en"><head><title>Using the GNU Compiler Collection (GCC)</title><meta http-equiv="Content-Type" content="text/html"><meta name="description" content="Using the GNU Compiler Collection (GCC)"><meta name="generator" content="makeinfo 4.6"><!--Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. <p>Permission is granted to copy, distribute and/or modify this documentunder the terms of the GNU Free Documentation License, Version 1.2 orany later version published by the Free Software Foundation; with theInvariant Sections being "GNU General Public License" and "FundingFree Software", the Front-Cover texts being (a) (see below), and withthe Back-Cover Texts being (b) (see below). A copy of the license isincluded in the section entitled "GNU Free Documentation License". <p>(a) The FSF's Front-Cover Text is: <p>A GNU Manual <p>(b) The FSF's Back-Cover Text is: <p>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.--><meta http-equiv="Content-Style-Type" content="text/css"><style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller }--></style></head><body><div class="node"><p>Node: <a name="Xtensa%20Options">Xtensa Options</a>,Next: <a rel="next" accesskey="n" href="FRV-Options.html#FRV%20Options">FRV Options</a>,Previous: <a rel="previous" accesskey="p" href="Xstormy16-Options.html#Xstormy16%20Options">Xstormy16 Options</a>,Up: <a rel="up" accesskey="u" href="Submodel-Options.html#Submodel%20Options">Submodel Options</a><hr><br></div><h3 class="subsection">Xtensa Options</h4><p>These options are supported for Xtensa targets: <dl><dt><code>-mconst16</code> <dd><dt><code>-mno-const16</code> <dd>Enable or disable use of <code>CONST16</code> instructions for loadingconstant values. The <code>CONST16</code> instruction is currently not astandard 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 ifthe <code>L32R</code> instruction is not available. <br><dt><code>-mfused-madd</code> <dd><dt><code>-mno-fused-madd</code> <dd>Enable or disable use of fused multiply/add and multiply/subtractinstructions in the floating-point option. This has no effect if thefloating-point option is not also enabled. Disabling fused multiply/addand multiply/subtract instructions forces the compiler to use separateinstructions for the multiply and add/subtract operations. This may bedesirable in some cases where strict IEEE 754-compliant results arerequired: the fused multiply add/subtract instructions do not round theintermediate result, thereby producing results with <em>more</em> bits ofprecision than specified by the IEEE standard. Disabling fused multiplyadd/subtract instructions also ensures that the program output is notsensitive to the compiler's ability to combine multiply and add/subtractoperations. <br><dt><code>-mtext-section-literals</code> <dd><dt><code>-mno-text-section-literals</code> <dd>Control the treatment of literal pools. The default is<code>-mno-text-section-literals</code>, which places literals in a separatesection in the output file. This allows the literal pool to be placedin a data RAM/ROM, and it also allows the linker to combine literalpools from separate object files to remove redundant literals andimprove code size. With <code>-mtext-section-literals</code>, the literalsare interspersed in the text section in order to keep them as close aspossible to their references. This may be necessary for large assemblyfiles. <br><dt><code>-mtarget-align</code> <dd><dt><code>-mno-target-align</code> <dd>When this option is enabled, GCC instructs the assembler toautomatically align instructions to reduce branch penalties at theexpense of some code density. The assembler attempts to widen densityinstructions to align branch targets and the instructions following callinstructions. If there are not enough preceding safe densityinstructions to align a target, no widening will be performed. Thedefault is <code>-mtarget-align</code>. These options do not affect thetreatment of auto-aligned instructions like <code>LOOP</code>, which theassembler will always align, either by widening density instructions orby inserting no-op instructions. <br><dt><code>-mlongcalls</code> <dd><dt><code>-mno-longcalls</code> <dd>When this option is enabled, GCC instructs the assembler to translatedirect calls to indirect calls unless it can determine that the targetof a direct call is in the range allowed by the call instruction. Thistranslation typically occurs for calls to functions in other sourcefiles. 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 <code>-mno-longcalls</code>. This option should be used inprograms where the call target can potentially be out of range. Thisoption is implemented in the assembler, not the compiler, so theassembly code generated by GCC will still show direct callinstructions--look at the disassembled object code to see the actualinstructions. Note that the assembler will use an indirect call forevery cross-file call, not just those that really will be out of range. </dl> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -