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> &nbsp; [<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&lsquo;<samp>--no-text-section-literals</samp>&rsquo;, which places literals in
78separate sections in the output file.  This allows the literal pool to be
79placed in a data RAM/ROM.  With &lsquo;<samp>--text-section-literals</samp>&rsquo;, 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&lsquo;<samp>--no-auto-litpools</samp>&rsquo;, which in the absence of
96&lsquo;<samp>--text-section-literals</samp>&rsquo; places literals in separate sections
97in the output file.  This allows the literal pool to be placed in a data
98RAM/ROM.  With &lsquo;<samp>--auto-litpools</samp>&rsquo;, 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 &lsquo;<samp>--text-section-literals</samp>&rsquo;,
107&lsquo;<samp>--auto-litpools</samp>&rsquo; 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&lsquo;<samp>--no-longcalls</samp>&rsquo;.
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&lsquo;<samp>--transform</samp>&rsquo;; &lsquo;<samp>--no-transform</samp>&rsquo; should only be used in the
148rare cases when the instructions must be exactly as specified in the
149assembly source.  Using &lsquo;<samp>--no-transform</samp>&rsquo; 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&lsquo;<samp>--trampolines</samp>&rsquo;.
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> &nbsp; [<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