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.

141 line
6.6KB

  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>TILEPro Syntax (Using as)</title>
  16. <meta name="description" content="TILEPro Syntax (Using as)">
  17. <meta name="keywords" content="TILEPro 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="TILEPro_002dDependent.html#TILEPro_002dDependent" rel="up" title="TILEPro-Dependent">
  25. <link href="TILEPro-Opcodes.html#TILEPro-Opcodes" rel="next" title="TILEPro Opcodes">
  26. <link href="TILEPro-Options.html#TILEPro-Options" rel="prev" title="TILEPro 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="TILEPro-Syntax"></a>
  57. <div class="header">
  58. <p>
  59. Next: <a href="TILEPro-Directives.html#TILEPro-Directives" accesskey="n" rel="next">TILEPro Directives</a>, Previous: <a href="TILEPro-Options.html#TILEPro-Options" accesskey="p" rel="prev">TILEPro Options</a>, Up: <a href="TILEPro_002dDependent.html#TILEPro_002dDependent" accesskey="u" rel="up">TILEPro-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="Syntax-29"></a>
  63. <h4 class="subsection">9.48.2 Syntax</h4>
  64. <a name="index-TILEPro-syntax"></a>
  65. <a name="index-syntax_002c-TILEPro"></a>
  66. <p>Block comments are delimited by &lsquo;<samp>/*</samp>&rsquo; and &lsquo;<samp>*/</samp>&rsquo;. End of line
  67. comments may be introduced by &lsquo;<samp>#</samp>&rsquo;.
  68. </p>
  69. <p>Instructions consist of a leading opcode or macro name followed by
  70. whitespace and an optional comma-separated list of operands:
  71. </p>
  72. <div class="smallexample">
  73. <pre class="smallexample"><var>opcode</var> [<var>operand</var>, &hellip;]
  74. </pre></div>
  75. <p>Instructions must be separated by a newline or semicolon.
  76. </p>
  77. <p>There are two ways to write code: either write naked instructions,
  78. which the assembler is free to combine into VLIW bundles, or specify
  79. the VLIW bundles explicitly.
  80. </p>
  81. <p>Bundles are specified using curly braces:
  82. </p>
  83. <div class="smallexample">
  84. <pre class="smallexample">{ <var>add</var> r3,r4,r5 ; <var>add</var> r7,r8,r9 ; <var>lw</var> r10,r11 }
  85. </pre></div>
  86. <p>A bundle can span multiple lines. If you want to put multiple
  87. instructions on a line, whether in a bundle or not, you need to
  88. separate them with semicolons as in this example.
  89. </p>
  90. <p>A bundle may contain one or more instructions, up to the limit
  91. specified by the ISA (currently three). If fewer instructions are
  92. specified than the hardware supports in a bundle, the assembler
  93. inserts <code>fnop</code> instructions automatically.
  94. </p>
  95. <p>The assembler will prefer to preserve the ordering of instructions
  96. within the bundle, putting the first instruction in a lower-numbered
  97. pipeline than the next one, etc. This fact, combined with the
  98. optional use of explicit <code>fnop</code> or <code>nop</code> instructions,
  99. allows precise control over which pipeline executes each instruction.
  100. </p>
  101. <p>If the instructions cannot be bundled in the listed order, the
  102. assembler will automatically try to find a valid pipeline
  103. assignment. If there is no way to bundle the instructions together,
  104. the assembler reports an error.
  105. </p>
  106. <p>The assembler does not yet auto-bundle (automatically combine multiple
  107. instructions into one bundle), but it reserves the right to do so in
  108. the future. If you want to force an instruction to run by itself, put
  109. it in a bundle explicitly with curly braces and use <code>nop</code>
  110. instructions (not <code>fnop</code>) to fill the remaining pipeline slots in
  111. that bundle.
  112. </p>
  113. <table class="menu" border="0" cellspacing="0">
  114. <tr><td align="left" valign="top">&bull; <a href="TILEPro-Opcodes.html#TILEPro-Opcodes" accesskey="1">TILEPro Opcodes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Opcode Naming Conventions.
  115. </td></tr>
  116. <tr><td align="left" valign="top">&bull; <a href="TILEPro-Registers.html#TILEPro-Registers" accesskey="2">TILEPro Registers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Register Naming.
  117. </td></tr>
  118. <tr><td align="left" valign="top">&bull; <a href="TILEPro-Modifiers.html#TILEPro-Modifiers" accesskey="3">TILEPro Modifiers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Symbolic Operand Modifiers.
  119. </td></tr>
  120. </table>
  121. <hr>
  122. <div class="header">
  123. <p>
  124. Next: <a href="TILEPro-Directives.html#TILEPro-Directives" accesskey="n" rel="next">TILEPro Directives</a>, Previous: <a href="TILEPro-Options.html#TILEPro-Options" accesskey="p" rel="prev">TILEPro Options</a>, Up: <a href="TILEPro_002dDependent.html#TILEPro_002dDependent" accesskey="u" rel="up">TILEPro-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>