<html lang="en"> <head> <title>Xtensa Syntax - Using as</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Using as"> <meta name="generator" content="makeinfo 4.7"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Xtensa_002dDependent.html#Xtensa_002dDependent" title="Xtensa-Dependent"> <link rel="prev" href="Xtensa-Options.html#Xtensa-Options" title="Xtensa Options"> <link rel="next" href="Xtensa-Optimizations.html#Xtensa-Optimizations" title="Xtensa Optimizations"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This file documents the GNU Assembler "as". Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2006, 2007 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.1 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''. man end--> <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; } --></style> </head> <body> <div class="node"> <p> <a name="Xtensa-Syntax"></a>Next: <a rel="next" accesskey="n" href="Xtensa-Optimizations.html#Xtensa-Optimizations">Xtensa Optimizations</a>, Previous: <a rel="previous" accesskey="p" href="Xtensa-Options.html#Xtensa-Options">Xtensa Options</a>, Up: <a rel="up" accesskey="u" href="Xtensa_002dDependent.html#Xtensa_002dDependent">Xtensa-Dependent</a> <hr><br> </div> <h4 class="subsection">9.36.2 Assembler Syntax</h4> <p><a name="index-syntax_002c-Xtensa-assembler-1848"></a><a name="index-Xtensa-assembler-syntax-1849"></a><a name="index-FLIX-syntax-1850"></a> Block comments are delimited by <span class="samp">/*</span> and <span class="samp">*/</span>. End of line comments may be introduced with either <span class="samp">#</span> or <span class="samp">//</span>. <p>Instructions consist of a leading opcode or macro name followed by whitespace and an optional comma-separated list of operands: <pre class="smallexample"> <var>opcode</var> [<var>operand</var>, ...] </pre> <p>Instructions must be separated by a newline or semicolon. <p>FLIX instructions, which bundle multiple opcodes together in a single instruction, are specified by enclosing the bundled opcodes inside braces: <pre class="smallexample"> { [<var>format</var>] <var>opcode0</var> [<var>operands</var>] <var>opcode1</var> [<var>operands</var>] <var>opcode2</var> [<var>operands</var>] ... } </pre> <p>The opcodes in a FLIX instruction are listed in the same order as the corresponding instruction slots in the TIE format declaration. Directives and labels are not allowed inside the braces of a FLIX instruction. A particular TIE format name can optionally be specified immediately after the opening brace, but this is usually unnecessary. The assembler will automatically search for a format that can encode the specified opcodes, so the format name need only be specified in rare cases where there is more than one applicable format and where it matters which of those formats is used. A FLIX instruction can also be specified on a single line by separating the opcodes with semicolons: <pre class="smallexample"> { [<var>format</var>;] <var>opcode0</var> [<var>operands</var>]; <var>opcode1</var> [<var>operands</var>]; <var>opcode2</var> [<var>operands</var>]; ... } </pre> <p>If an opcode can only be encoded in a FLIX instruction but is not specified as part of a FLIX bundle, the assembler will choose the smallest format where the opcode can be encoded and will fill unused instruction slots with no-ops. <ul class="menu"> <li><a accesskey="1" href="Xtensa-Opcodes.html#Xtensa-Opcodes">Xtensa Opcodes</a>: Opcode Naming Conventions. <li><a accesskey="2" href="Xtensa-Registers.html#Xtensa-Registers">Xtensa Registers</a>: Register Naming. </ul> </body></html>