<!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-2013 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.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: Xtensa Opcodes</title>

<meta name="description" content="Using as: Xtensa Opcodes">
<meta name="keywords" content="Using as: Xtensa Opcodes">
<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-Syntax.html#Xtensa-Syntax" rel="up" title="Xtensa Syntax">
<link href="Xtensa-Registers.html#Xtensa-Registers" rel="next" title="Xtensa Registers">
<link href="Xtensa-Syntax.html#Xtensa-Syntax" rel="prev" title="Xtensa Syntax">
<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-Opcodes"></a>
<div class="header">
<p>
Next: <a href="Xtensa-Registers.html#Xtensa-Registers" accesskey="n" rel="next">Xtensa Registers</a>, Up: <a href="Xtensa-Syntax.html#Xtensa-Syntax" accesskey="u" rel="up">Xtensa Syntax</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="Opcode-Names-2"></a>
<h4 class="subsubsection">9.52.2.1 Opcode Names</h4>
<a name="index-Xtensa-opcode-names"></a>
<a name="index-opcode-names_002c-Xtensa"></a>

<p>See the <cite>Xtensa Instruction Set Architecture (ISA) Reference
Manual</cite> for a complete list of opcodes and descriptions of their
semantics.
</p>
<a name="index-_005f-opcode-prefix"></a>
<p>If an opcode name is prefixed with an underscore character (&lsquo;<samp>_</samp>&rsquo;),
<code>as</code> will not transform that instruction in any way.  The
underscore prefix disables both optimization (see <a href="Xtensa-Optimizations.html#Xtensa-Optimizations">Xtensa Optimizations</a>) and relaxation (see <a href="Xtensa-Relaxation.html#Xtensa-Relaxation">Xtensa Relaxation</a>) for that particular instruction.  Only
use the underscore prefix when it is essential to select the exact
opcode produced by the assembler.  Using this feature unnecessarily
makes the code less efficient by disabling assembler optimization and
less flexible by disabling relaxation.
</p>
<p>Note that this special handling of underscore prefixes only applies to
Xtensa opcodes, not to either built-in macros or user-defined macros.
When an underscore prefix is used with a macro (e.g., <code>_MOV</code>), it
refers to a different macro.  The assembler generally provides built-in
macros both with and without the underscore prefix, where the underscore
versions behave as if the underscore carries through to the instructions
in the macros.  For example, <code>_MOV</code> may expand to <code>_MOV.N</code>.
</p>
<p>The underscore prefix only applies to individual instructions, not to
series of instructions.  For example, if a series of instructions have
underscore prefixes, the assembler will not transform the individual
instructions, but it may insert other instructions between them (e.g.,
to align a <code>LOOP</code> instruction).  To prevent the assembler from
modifying a series of instructions as a whole, use the
<code>no-transform</code> directive.  See <a href="Transform-Directive.html#Transform-Directive">transform</a>.
</p>



</body>
</html>
