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 Opcodes</title> 17 18<meta name="description" content="Using as: Xtensa Opcodes"> 19<meta name="keywords" content="Using as: Xtensa Opcodes"> 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-Syntax.html#Xtensa-Syntax" rel="up" title="Xtensa Syntax"> 28<link href="Xtensa-Registers.html#Xtensa-Registers" rel="next" title="Xtensa Registers"> 29<link href="Xtensa-Syntax.html#Xtensa-Syntax" rel="previous" title="Xtensa Syntax"> 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-Opcodes"></a> 64<div class="header"> 65<p> 66Next: <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> [<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="Opcode-Names-2"></a> 70<h4 class="subsubsection">9.55.2.1 Opcode Names</h4> 71<a name="index-Xtensa-opcode-names"></a> 72<a name="index-opcode-names_002c-Xtensa"></a> 73 74<p>See the <cite>Xtensa Instruction Set Architecture (ISA) Reference 75Manual</cite> for a complete list of opcodes and descriptions of their 76semantics. 77</p> 78<a name="index-_005f-opcode-prefix"></a> 79<p>If an opcode name is prefixed with an underscore character (‘<samp>_</samp>’), 80<code>as</code> will not transform that instruction in any way. The 81underscore 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 82use the underscore prefix when it is essential to select the exact 83opcode produced by the assembler. Using this feature unnecessarily 84makes the code less efficient by disabling assembler optimization and 85less flexible by disabling relaxation. 86</p> 87<p>Note that this special handling of underscore prefixes only applies to 88Xtensa opcodes, not to either built-in macros or user-defined macros. 89When an underscore prefix is used with a macro (e.g., <code>_MOV</code>), it 90refers to a different macro. The assembler generally provides built-in 91macros both with and without the underscore prefix, where the underscore 92versions behave as if the underscore carries through to the instructions 93in the macros. For example, <code>_MOV</code> may expand to <code>_MOV.N</code>. 94</p> 95<p>The underscore prefix only applies to individual instructions, not to 96series of instructions. For example, if a series of instructions have 97underscore prefixes, the assembler will not transform the individual 98instructions, but it may insert other instructions between them (e.g., 99to align a <code>LOOP</code> instruction). To prevent the assembler from 100modifying a series of instructions as a whole, use the 101<code>no-transform</code> directive. See <a href="Transform-Directive.html#Transform-Directive">transform</a>. 102</p> 103 104 105 106</body> 107</html> 108