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