You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Xtensa-Syntax.html 6.7KB

3 vuotta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. Copyright (C) 1991-2020 Free Software Foundation, Inc.
  5. Permission is granted to copy, distribute and/or modify this document
  6. under the terms of the GNU Free Documentation License, Version 1.3
  7. or any later version published by the Free Software Foundation;
  8. with no Invariant Sections, with no Front-Cover Texts, and with no
  9. Back-Cover Texts. A copy of the license is included in the
  10. section entitled "GNU Free Documentation License".
  11. -->
  12. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  13. <head>
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  15. <title>Xtensa Syntax (Using as)</title>
  16. <meta name="description" content="Xtensa Syntax (Using as)">
  17. <meta name="keywords" content="Xtensa Syntax (Using as)">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  21. <link href="index.html#Top" rel="start" title="Top">
  22. <link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
  23. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  24. <link href="Xtensa_002dDependent.html#Xtensa_002dDependent" rel="up" title="Xtensa-Dependent">
  25. <link href="Xtensa-Opcodes.html#Xtensa-Opcodes" rel="next" title="Xtensa Opcodes">
  26. <link href="Xtensa-Options.html#Xtensa-Options" rel="prev" title="Xtensa Options">
  27. <style type="text/css">
  28. <!--
  29. a.summary-letter {text-decoration: none}
  30. blockquote.indentedblock {margin-right: 0em}
  31. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  32. blockquote.smallquotation {font-size: smaller}
  33. div.display {margin-left: 3.2em}
  34. div.example {margin-left: 3.2em}
  35. div.lisp {margin-left: 3.2em}
  36. div.smalldisplay {margin-left: 3.2em}
  37. div.smallexample {margin-left: 3.2em}
  38. div.smalllisp {margin-left: 3.2em}
  39. kbd {font-style: oblique}
  40. pre.display {font-family: inherit}
  41. pre.format {font-family: inherit}
  42. pre.menu-comment {font-family: serif}
  43. pre.menu-preformatted {font-family: serif}
  44. pre.smalldisplay {font-family: inherit; font-size: smaller}
  45. pre.smallexample {font-size: smaller}
  46. pre.smallformat {font-family: inherit; font-size: smaller}
  47. pre.smalllisp {font-size: smaller}
  48. span.nolinebreak {white-space: nowrap}
  49. span.roman {font-family: initial; font-weight: normal}
  50. span.sansserif {font-family: sans-serif; font-weight: normal}
  51. ul.no-bullet {list-style: none}
  52. -->
  53. </style>
  54. </head>
  55. <body lang="en">
  56. <a name="Xtensa-Syntax"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="Xtensa-Optimizations.html#Xtensa-Optimizations" accesskey="n" rel="next">Xtensa Optimizations</a>, Previous: <a href="Xtensa-Options.html#Xtensa-Options" accesskey="p" rel="prev">Xtensa Options</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>
  60. </div>
  61. <hr>
  62. <a name="Assembler-Syntax"></a>
  63. <h4 class="subsection">9.55.2 Assembler Syntax</h4>
  64. <a name="index-syntax_002c-Xtensa-assembler"></a>
  65. <a name="index-Xtensa-assembler-syntax"></a>
  66. <a name="index-FLIX-syntax"></a>
  67. <p>Block comments are delimited by &lsquo;<samp>/*</samp>&rsquo; and &lsquo;<samp>*/</samp>&rsquo;. End of line
  68. comments may be introduced with either &lsquo;<samp>#</samp>&rsquo; or &lsquo;<samp>//</samp>&rsquo;.
  69. </p>
  70. <p>If a &lsquo;<samp>#</samp>&rsquo; appears as the first character of a line then the whole
  71. line is treated as a comment, but in this case the line could also be
  72. a logical line number directive (see <a href="Comments.html#Comments">Comments</a>) or a preprocessor
  73. control command (see <a href="Preprocessing.html#Preprocessing">Preprocessing</a>).
  74. </p>
  75. <p>Instructions consist of a leading opcode or macro name followed by
  76. whitespace and an optional comma-separated list of operands:
  77. </p>
  78. <div class="smallexample">
  79. <pre class="smallexample"><var>opcode</var> [<var>operand</var>, &hellip;]
  80. </pre></div>
  81. <p>Instructions must be separated by a newline or semicolon (&lsquo;<samp>;</samp>&rsquo;).
  82. </p>
  83. <p>FLIX instructions, which bundle multiple opcodes together in a single
  84. instruction, are specified by enclosing the bundled opcodes inside
  85. braces:
  86. </p>
  87. <div class="smallexample">
  88. <pre class="smallexample">{
  89. [<var>format</var>]
  90. <var>opcode0</var> [<var>operands</var>]
  91. </pre><pre class="smallexample"><var>opcode1</var> [<var>operands</var>]
  92. </pre><pre class="smallexample"><var>opcode2</var> [<var>operands</var>]
  93. &hellip;
  94. }
  95. </pre></div>
  96. <p>The opcodes in a FLIX instruction are listed in the same order as the
  97. corresponding instruction slots in the TIE format declaration.
  98. Directives and labels are not allowed inside the braces of a FLIX
  99. instruction. A particular TIE format name can optionally be specified
  100. immediately after the opening brace, but this is usually unnecessary.
  101. The assembler will automatically search for a format that can encode the
  102. specified opcodes, so the format name need only be specified in rare
  103. cases where there is more than one applicable format and where it
  104. matters which of those formats is used. A FLIX instruction can also be
  105. specified on a single line by separating the opcodes with semicolons:
  106. </p>
  107. <div class="smallexample">
  108. <pre class="smallexample">{ [<var>format</var>;] <var>opcode0</var> [<var>operands</var>]; <var>opcode1</var> [<var>operands</var>]; <var>opcode2</var> [<var>operands</var>]; &hellip; }
  109. </pre></div>
  110. <p>If an opcode can only be encoded in a FLIX instruction but is not
  111. specified as part of a FLIX bundle, the assembler will choose the
  112. smallest format where the opcode can be encoded and
  113. will fill unused instruction slots with no-ops.
  114. </p>
  115. <table class="menu" border="0" cellspacing="0">
  116. <tr><td align="left" valign="top">&bull; <a href="Xtensa-Opcodes.html#Xtensa-Opcodes" accesskey="1">Xtensa Opcodes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Opcode Naming Conventions.
  117. </td></tr>
  118. <tr><td align="left" valign="top">&bull; <a href="Xtensa-Registers.html#Xtensa-Registers" accesskey="2">Xtensa Registers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Register Naming.
  119. </td></tr>
  120. </table>
  121. <hr>
  122. <div class="header">
  123. <p>
  124. Next: <a href="Xtensa-Optimizations.html#Xtensa-Optimizations" accesskey="n" rel="next">Xtensa Optimizations</a>, Previous: <a href="Xtensa-Options.html#Xtensa-Options" accesskey="p" rel="prev">Xtensa Options</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>
  125. </div>
  126. </body>
  127. </html>