You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.9 KiB
HTML
79 lines
3.9 KiB
HTML
4 years ago
|
<html lang="en">
|
||
|
<head>
|
||
|
<title>Xtensa Opcodes - 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-Syntax.html#Xtensa-Syntax" title="Xtensa Syntax">
|
||
|
<link rel="next" href="Xtensa-Registers.html#Xtensa-Registers" title="Xtensa Registers">
|
||
|
<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-Opcodes"></a>
|
||
|
<p>
|
||
|
Next: <a rel="next" accesskey="n" href="Xtensa-Registers.html#Xtensa-Registers">Xtensa Registers</a>,
|
||
|
Up: <a rel="up" accesskey="u" href="Xtensa-Syntax.html#Xtensa-Syntax">Xtensa Syntax</a>
|
||
|
<hr>
|
||
|
</div>
|
||
|
|
||
|
<h5 class="subsubsection">9.52.2.1 Opcode Names</h5>
|
||
|
|
||
|
<p><a name="index-Xtensa-opcode-names-2453"></a><a name="index-opcode-names_002c-Xtensa-2454"></a>
|
||
|
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-g_t_005f-opcode-prefix-2455"></a>If an opcode name is prefixed with an underscore character (‘<samp><span class="samp">_</span></samp>’),
|
||
|
<samp><span class="command">as</span></samp> 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>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>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>.
|
||
|
|
||
|
</body></html>
|
||
|
|