hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".
 
Copyright (C) 1991-2021 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".
 -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: Xtensa Directives</title>
 
<meta name="description" content="Using as: Xtensa Directives">
<meta name="keywords" content="Using as: Xtensa Directives">
<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="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Xtensa_002dDependent.html#Xtensa_002dDependent" rel="up" title="Xtensa-Dependent">
<link href="Schedule-Directive.html#Schedule-Directive" rel="next" title="Schedule Directive">
<link href="Xtensa-Immediate-Relaxation.html#Xtensa-Immediate-Relaxation" rel="previous" title="Xtensa Immediate Relaxation">
<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-Directives"></a>
<div class="header">
<p>
Previous: <a href="Xtensa-Relaxation.html#Xtensa-Relaxation" accesskey="p" rel="previous">Xtensa Relaxation</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>
</div>
<hr>
<a name="Directives-3"></a>
<h4 class="subsection">9.55.5 Directives</h4>
<a name="index-Xtensa-directives"></a>
<a name="index-directives_002c-Xtensa"></a>
 
<p>The Xtensa assembler supports a region-based directive syntax:
</p>
<div class="smallexample">
<pre class="smallexample">    .begin <var>directive</var> [<var>options</var>]
    &hellip;
    .end <var>directive</var>
</pre></div>
 
<p>All the Xtensa-specific directives that apply to a region of code use
this syntax.
</p>
<p>The directive applies to code between the <code>.begin</code> and the
<code>.end</code>.  The state of the option after the <code>.end</code> reverts to
what it was before the <code>.begin</code>.
A nested <code>.begin</code>/<code>.end</code> region can further
change the state of the directive without having to be aware of its
outer state.  For example, consider:
</p>
<div class="smallexample">
<pre class="smallexample">    .begin no-transform
L:  add a0, a1, a2
</pre><pre class="smallexample">    .begin transform
M:  add a0, a1, a2
    .end transform
</pre><pre class="smallexample">N:  add a0, a1, a2
    .end no-transform
</pre></div>
 
<p>The <code>ADD</code> opcodes at <code>L</code> and <code>N</code> in the outer
<code>no-transform</code> region both result in <code>ADD</code> machine instructions,
but the assembler selects an <code>ADD.N</code> instruction for the
<code>ADD</code> at <code>M</code> in the inner <code>transform</code> region.
</p>
<p>The advantage of this style is that it works well inside macros which can
preserve the context of their callers.
</p>
<p>The following directives are available:
</p><table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Schedule-Directive.html#Schedule-Directive" accesskey="1">Schedule Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Enable instruction scheduling.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Longcalls-Directive.html#Longcalls-Directive" accesskey="2">Longcalls Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Use Indirect Calls for Greater Range.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Transform-Directive.html#Transform-Directive" accesskey="3">Transform Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Disable All Assembler Transformations.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Literal-Directive.html#Literal-Directive" accesskey="4">Literal Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Intermix Literals with Instructions.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Literal-Position-Directive.html#Literal-Position-Directive" accesskey="5">Literal Position Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Specify Inline Literal Pool Locations.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Literal-Prefix-Directive.html#Literal-Prefix-Directive" accesskey="6">Literal Prefix Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Specify Literal Section Name Prefix.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Absolute-Literals-Directive.html#Absolute-Literals-Directive" accesskey="7">Absolute Literals Directive</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Control PC-Relative vs. Absolute Literals.
</td></tr>
</table>
 
<hr>
<div class="header">
<p>
Previous: <a href="Xtensa-Relaxation.html#Xtensa-Relaxation" accesskey="p" rel="previous">Xtensa Relaxation</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>
</div>
 
 
 
</body>
</html>