1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU Assembler "as". 4 5Copyright (C) 1991-2021 Free Software Foundation, Inc. 6 7Permission is granted to copy, distribute and/or modify this document 8under the terms of the GNU Free Documentation License, Version 1.3 9or any later version published by the Free Software Foundation; 10with no Invariant Sections, with no Front-Cover Texts, and with no 11Back-Cover Texts. A copy of the license is included in the 12section entitled "GNU Free Documentation License". 13 --> 14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 15<head> 16<title>Using as: Xtensa Options</title> 17 18<meta name="description" content="Using as: Xtensa Options"> 19<meta name="keywords" content="Using as: Xtensa Options"> 20<meta name="resource-type" content="document"> 21<meta name="distribution" content="global"> 22<meta name="Generator" content="makeinfo"> 23<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 24<link href="index.html#Top" rel="start" title="Top"> 25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index"> 26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 27<link href="Xtensa_002dDependent.html#Xtensa_002dDependent" rel="up" title="Xtensa-Dependent"> 28<link href="Xtensa-Syntax.html#Xtensa-Syntax" rel="next" title="Xtensa Syntax"> 29<link href="Xtensa_002dDependent.html#Xtensa_002dDependent" rel="previous" title="Xtensa-Dependent"> 30<style type="text/css"> 31<!-- 32a.summary-letter {text-decoration: none} 33blockquote.smallquotation {font-size: smaller} 34div.display {margin-left: 3.2em} 35div.example {margin-left: 3.2em} 36div.indentedblock {margin-left: 3.2em} 37div.lisp {margin-left: 3.2em} 38div.smalldisplay {margin-left: 3.2em} 39div.smallexample {margin-left: 3.2em} 40div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 41div.smalllisp {margin-left: 3.2em} 42kbd {font-style:oblique} 43pre.display {font-family: inherit} 44pre.format {font-family: inherit} 45pre.menu-comment {font-family: serif} 46pre.menu-preformatted {font-family: serif} 47pre.smalldisplay {font-family: inherit; font-size: smaller} 48pre.smallexample {font-size: smaller} 49pre.smallformat {font-family: inherit; font-size: smaller} 50pre.smalllisp {font-size: smaller} 51span.nocodebreak {white-space:nowrap} 52span.nolinebreak {white-space:nowrap} 53span.roman {font-family:serif; font-weight:normal} 54span.sansserif {font-family:sans-serif; font-weight:normal} 55ul.no-bullet {list-style: none} 56--> 57</style> 58 59 60</head> 61 62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 63<a name="Xtensa-Options"></a> 64<div class="header"> 65<p> 66Next: <a href="Xtensa-Syntax.html#Xtensa-Syntax" accesskey="n" rel="next">Xtensa Syntax</a>, Up: <a href="Xtensa_002dDependent.html#Xtensa_002dDependent" accesskey="u" rel="up">Xtensa-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 67</div> 68<hr> 69<a name="Command_002dline-Options-2"></a> 70<h4 class="subsection">9.55.1 Command-line Options</h4> 71 72<dl compact="compact"> 73<dt><code>--text-section-literals | --no-text-section-literals</code></dt> 74<dd><a name="index-_002d_002dtext_002dsection_002dliterals"></a> 75<a name="index-_002d_002dno_002dtext_002dsection_002dliterals"></a> 76<p>Control the treatment of literal pools. The default is 77‘<samp>--no-text-section-literals</samp>’, which places literals in 78separate sections in the output file. This allows the literal pool to be 79placed in a data RAM/ROM. With ‘<samp>--text-section-literals</samp>’, the 80literals are interspersed in the text section in order to keep them as 81close as possible to their references. This may be necessary for large 82assembly files, where the literals would otherwise be out of range of the 83<code>L32R</code> instructions in the text section. Literals are grouped into 84pools following <code>.literal_position</code> directives or preceding 85<code>ENTRY</code> instructions. These options only affect literals referenced 86via PC-relative <code>L32R</code> instructions; literals for absolute mode 87<code>L32R</code> instructions are handled separately. 88See <a href="Literal-Directive.html#Literal-Directive">literal</a>. 89</p> 90</dd> 91<dt><code>--auto-litpools | --no-auto-litpools</code></dt> 92<dd><a name="index-_002d_002dauto_002dlitpools"></a> 93<a name="index-_002d_002dno_002dauto_002dlitpools"></a> 94<p>Control the treatment of literal pools. The default is 95‘<samp>--no-auto-litpools</samp>’, which in the absence of 96‘<samp>--text-section-literals</samp>’ places literals in separate sections 97in the output file. This allows the literal pool to be placed in a data 98RAM/ROM. With ‘<samp>--auto-litpools</samp>’, the literals are interspersed 99in the text section in order to keep them as close as possible to their 100references, explicit <code>.literal_position</code> directives are not 101required. This may be necessary for very large functions, where single 102literal pool at the beginning of the function may not be reachable by 103<code>L32R</code> instructions at the end. These options only affect 104literals referenced via PC-relative <code>L32R</code> instructions; literals 105for absolute mode <code>L32R</code> instructions are handled separately. 106When used together with ‘<samp>--text-section-literals</samp>’, 107‘<samp>--auto-litpools</samp>’ takes precedence. 108See <a href="Literal-Directive.html#Literal-Directive">literal</a>. 109</p> 110</dd> 111<dt><code>--absolute-literals | --no-absolute-literals</code></dt> 112<dd><a name="index-_002d_002dabsolute_002dliterals"></a> 113<a name="index-_002d_002dno_002dabsolute_002dliterals"></a> 114<p>Indicate to the assembler whether <code>L32R</code> instructions use absolute 115or PC-relative addressing. If the processor includes the absolute 116addressing option, the default is to use absolute <code>L32R</code> 117relocations. Otherwise, only the PC-relative <code>L32R</code> relocations 118can be used. 119</p> 120</dd> 121<dt><code>--target-align | --no-target-align</code></dt> 122<dd><a name="index-_002d_002dtarget_002dalign"></a> 123<a name="index-_002d_002dno_002dtarget_002dalign"></a> 124<p>Enable or disable automatic alignment to reduce branch penalties at some 125expense in code size. See <a href="Xtensa-Automatic-Alignment.html#Xtensa-Automatic-Alignment">Automatic 126Instruction Alignment</a>. This optimization is enabled by default. Note 127that the assembler will always align instructions like <code>LOOP</code> that 128have fixed alignment requirements. 129</p> 130</dd> 131<dt><code>--longcalls | --no-longcalls</code></dt> 132<dd><a name="index-_002d_002dlongcalls"></a> 133<a name="index-_002d_002dno_002dlongcalls"></a> 134<p>Enable or disable transformation of call instructions to allow calls 135across 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 136targets can potentially be out of range. It may degrade both code size 137and performance, but the linker can generally optimize away the 138unnecessary overhead when a call ends up within range. The default is 139‘<samp>--no-longcalls</samp>’. 140</p> 141</dd> 142<dt><code>--transform | --no-transform</code></dt> 143<dd><a name="index-_002d_002dtransform"></a> 144<a name="index-_002d_002dno_002dtransform"></a> 145<p>Enable or disable all assembler transformations of Xtensa instructions, 146including both relaxation and optimization. The default is 147‘<samp>--transform</samp>’; ‘<samp>--no-transform</samp>’ should only be used in the 148rare cases when the instructions must be exactly as specified in the 149assembly source. Using ‘<samp>--no-transform</samp>’ causes out of range 150instruction operands to be errors. 151</p> 152</dd> 153<dt><code>--rename-section <var>oldname</var>=<var>newname</var></code></dt> 154<dd><a name="index-_002d_002drename_002dsection"></a> 155<p>Rename the <var>oldname</var> section to <var>newname</var>. This option can be used 156multiple times to rename multiple sections. 157</p> 158</dd> 159<dt><code>--trampolines | --no-trampolines</code></dt> 160<dd><a name="index-_002d_002dtrampolines"></a> 161<a name="index-_002d_002dno_002dtrampolines"></a> 162<p>Enable or disable transformation of jump instructions to allow jumps 163across 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 164potentially be out of range. In the absence of such jumps this option 165does not affect code size or performance. The default is 166‘<samp>--trampolines</samp>’. 167</p> 168</dd> 169<dt><code>--abi-windowed | --abi-call0</code></dt> 170<dd><a name="index-_002d_002dabi_002dwindowed"></a> 171<a name="index-_002d_002dabi_002dcall0"></a> 172<p>Choose ABI tag written to the <code>.xtensa.info</code> section. ABI tag 173indicates ABI of the assembly code. A warning is issued by the linker 174on an attempt to link object files with inconsistent ABI tags. 175Default ABI is chosen by the Xtensa core configuration. 176</p></dd> 177</dl> 178 179 180<hr> 181<div class="header"> 182<p> 183Next: <a href="Xtensa-Syntax.html#Xtensa-Syntax" accesskey="n" rel="next">Xtensa Syntax</a>, Up: <a href="Xtensa_002dDependent.html#Xtensa_002dDependent" accesskey="u" rel="up">Xtensa-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 184</div> 185 186 187 188</body> 189</html> 190