<html lang="en"> <head> <title>Xtensa Options - Using as</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Using as"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Xtensa_002dDependent.html#Xtensa_002dDependent" title="Xtensa-Dependent"> <link rel="next" href="Xtensa-Syntax.html#Xtensa-Syntax" title="Xtensa Syntax"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This file documents the GNU Assembler "as". Copyright (C) 1991-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 no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. --> <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 } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Xtensa-Options"></a> <p> Next: <a rel="next" accesskey="n" href="Xtensa-Syntax.html#Xtensa-Syntax">Xtensa Syntax</a>, Up: <a rel="up" accesskey="u" href="Xtensa_002dDependent.html#Xtensa_002dDependent">Xtensa-Dependent</a> <hr> </div> <h4 class="subsection">9.52.1 Command Line Options</h4> <!-- man begin OPTIONS --> <dl> <dt><code>--text-section-literals | --no-text-section-literals</code><dd><a name="index-g_t_002d_002dtext_002dsection_002dliterals-2435"></a><a name="index-g_t_002d_002dno_002dtext_002dsection_002dliterals-2436"></a>Control the treatment of literal pools. The default is ‘<samp><span class="samp">--no-text-section-literals</span></samp>’, which places literals in separate sections in the output file. This allows the literal pool to be placed in a data RAM/ROM. With ‘<samp><span class="samp">--text-section-literals</span></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, where the literals would otherwise be out of range of the <code>L32R</code> instructions in the text section. Literals are grouped into pools following <code>.literal_position</code> directives or preceding <code>ENTRY</code> instructions. These options only affect literals referenced via PC-relative <code>L32R</code> instructions; literals for absolute mode <code>L32R</code> instructions are handled separately. See <a href="Literal-Directive.html#Literal-Directive">literal</a>. <br><dt><code>--auto-litpools | --no-auto-litpools</code><dd><a name="index-g_t_002d_002dauto_002dlitpools-2437"></a><a name="index-g_t_002d_002dno_002dauto_002dlitpools-2438"></a>Control the treatment of literal pools. The default is ‘<samp><span class="samp">--no-auto-litpools</span></samp>’, which in the absence of ‘<samp><span class="samp">--text-section-literals</span></samp>’ places literals in separate sections in the output file. This allows the literal pool to be placed in a data RAM/ROM. With ‘<samp><span class="samp">--auto-litpools</span></samp>’, the literals are interspersed in the text section in order to keep them as close as possible to their references, explicit <code>.literal_position</code> directives are not required. This may be necessary for very large functions, where single literal pool at the beginning of the function may not be reachable by <code>L32R</code> instructions at the end. These options only affect literals referenced via PC-relative <code>L32R</code> instructions; literals for absolute mode <code>L32R</code> instructions are handled separately. When used together with ‘<samp><span class="samp">--text-section-literals</span></samp>’, ‘<samp><span class="samp">--auto-litpools</span></samp>’ takes precedence. See <a href="Literal-Directive.html#Literal-Directive">literal</a>. <br><dt><code>--absolute-literals | --no-absolute-literals</code><dd><a name="index-g_t_002d_002dabsolute_002dliterals-2439"></a><a name="index-g_t_002d_002dno_002dabsolute_002dliterals-2440"></a>Indicate to the assembler whether <code>L32R</code> instructions use absolute or PC-relative addressing. If the processor includes the absolute addressing option, the default is to use absolute <code>L32R</code> relocations. Otherwise, only the PC-relative <code>L32R</code> relocations can be used. <br><dt><code>--target-align | --no-target-align</code><dd><a name="index-g_t_002d_002dtarget_002dalign-2441"></a><a name="index-g_t_002d_002dno_002dtarget_002dalign-2442"></a>Enable or disable automatic alignment to reduce branch penalties at some expense in code size. See <a href="Xtensa-Automatic-Alignment.html#Xtensa-Automatic-Alignment">Automatic Instruction Alignment</a>. This optimization is enabled by default. Note that the assembler will always align instructions like <code>LOOP</code> that have fixed alignment requirements. <br><dt><code>--longcalls | --no-longcalls</code><dd><a name="index-g_t_002d_002dlongcalls-2443"></a><a name="index-g_t_002d_002dno_002dlongcalls-2444"></a>Enable or disable transformation of call instructions to allow calls across a greater range of addresses. See <a href="Xtensa-Call-Relaxation.html#Xtensa-Call-Relaxation">Function Call Relaxation</a>. This option should be used when call targets can potentially be out of range. It may degrade both code size and performance, but the linker can generally optimize away the unnecessary overhead when a call ends up within range. The default is ‘<samp><span class="samp">--no-longcalls</span></samp>’. <br><dt><code>--transform | --no-transform</code><dd><a name="index-g_t_002d_002dtransform-2445"></a><a name="index-g_t_002d_002dno_002dtransform-2446"></a>Enable or disable all assembler transformations of Xtensa instructions, including both relaxation and optimization. The default is ‘<samp><span class="samp">--transform</span></samp>’; ‘<samp><span class="samp">--no-transform</span></samp>’ should only be used in the rare cases when the instructions must be exactly as specified in the assembly source. Using ‘<samp><span class="samp">--no-transform</span></samp>’ causes out of range instruction operands to be errors. <br><dt><code>--rename-section </code><var>oldname</var><code>=</code><var>newname</var><dd><a name="index-g_t_002d_002drename_002dsection-2447"></a>Rename the <var>oldname</var> section to <var>newname</var>. This option can be used multiple times to rename multiple sections. <br><dt><code>--trampolines | --no-trampolines</code><dd><a name="index-g_t_002d_002dtrampolines-2448"></a><a name="index-g_t_002d_002dno_002dtrampolines-2449"></a>Enable or disable transformation of jump instructions to allow jumps across a greater range of addresses. See <a href="Xtensa-Jump-Relaxation.html#Xtensa-Jump-Relaxation">Jump Trampolines</a>. This option should be used when jump targets can potentially be out of range. In the absence of such jumps this option does not affect code size or performance. The default is ‘<samp><span class="samp">--trampolines</span></samp>’. </dl> <!-- man end --> </body></html>