toolchain/share/doc/as.html/D30V_002dChars.html

107 lines
5.9 KiB
HTML
Raw Normal View History

2024-01-10 05:24:32 +00:00
<html lang="en">
<head>
<title>D30V-Chars - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="D30V_002dSyntax.html#D30V_002dSyntax" title="D30V-Syntax">
<link rel="prev" href="D30V_002dSubs.html#D30V_002dSubs" title="D30V-Subs">
<link rel="next" href="D30V_002dGuarded.html#D30V_002dGuarded" title="D30V-Guarded">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991-2019 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.3
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''.
-->
<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; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="D30V-Chars"></a>
<a name="D30V_002dChars"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="D30V_002dGuarded.html#D30V_002dGuarded">D30V-Guarded</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="D30V_002dSubs.html#D30V_002dSubs">D30V-Subs</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="D30V_002dSyntax.html#D30V_002dSyntax">D30V-Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.12.2.3 Special Characters</h5>
<p><a name="index-line-comment-character_002c-D30V-1014"></a><a name="index-D30V-line-comment-character-1015"></a>A semicolon (&lsquo;<samp><span class="samp">;</span></samp>&rsquo;) can be used anywhere on a line to start a
comment that extends to the end of the line.
<p>If a &lsquo;<samp><span class="samp">#</span></samp>&rsquo; appears as the first character of a line, the whole line
is treated as a comment, but in this case the line could also be a
logical line number directive (see <a href="Comments.html#Comments">Comments</a>) or a preprocessor
control command (see <a href="Preprocessing.html#Preprocessing">Preprocessing</a>).
<p><a name="index-sub_002dinstruction-ordering_002c-D30V-1016"></a><a name="index-D30V-sub_002dinstruction-ordering-1017"></a>Sub-instructions may be executed in order, in reverse-order, or in parallel.
Instructions listed in the standard one-per-line format will be executed
sequentially unless you use the &lsquo;<samp><span class="samp">-O</span></samp>&rsquo; option.
<p>To specify the executing order, use the following symbols:
<dl>
<dt>&lsquo;<samp><span class="samp">-&gt;</span></samp>&rsquo;<dd>Sequential with instruction on the left first.
<br><dt>&lsquo;<samp><span class="samp">&lt;-</span></samp>&rsquo;<dd>Sequential with instruction on the right first.
<br><dt>&lsquo;<samp><span class="samp">||</span></samp>&rsquo;<dd>Parallel
</dl>
<p>The D30V syntax allows either one instruction per line, one instruction per line with
the execution symbol, or two instructions per line. For example
<dl>
<dt><code>abs r2,r3 -&gt; abs r4,r5</code><dd>Execute these sequentially. The instruction on the right is in the right
container and is executed second.
<br><dt><code>abs r2,r3 &lt;- abs r4,r5</code><dd>Execute these reverse-sequentially. The instruction on the right is in the right
container, and is executed first.
<br><dt><code>abs r2,r3 || abs r4,r5</code><dd>Execute these in parallel.
<br><dt><code>ldw r2,@(r3,r4) ||</code><dt><code>mulx r6,r8,r9</code><dd>Two-line format. Execute these in parallel.
<br><dt><code>mulx a0,r8,r9</code><dt><code>stw r2,@(r3,r4)</code><dd>Two-line format. Execute these sequentially unless &lsquo;<samp><span class="samp">-O</span></samp>&rsquo; option is
used. If the &lsquo;<samp><span class="samp">-O</span></samp>&rsquo; option is used, the assembler will determine if
the instructions could be done in parallel (the above two instructions
can be done in parallel), and if so, emit them as parallel instructions.
The assembler will put them in the proper containers. In the above
example, the assembler will put the &lsquo;<samp><span class="samp">stw</span></samp>&rsquo; instruction in left
container and the &lsquo;<samp><span class="samp">mulx</span></samp>&rsquo; instruction in the right container.
<br><dt><code>stw r2,@(r3,r4) -&gt;</code><dt><code>mulx a0,r8,r9</code><dd>Two-line format. Execute the &lsquo;<samp><span class="samp">stw</span></samp>&rsquo; instruction followed by the
&lsquo;<samp><span class="samp">mulx</span></samp>&rsquo; instruction sequentially. The first instruction goes in the
left container and the second instruction goes into right container.
The assembler will give an error if the machine ordering constraints are
violated.
<br><dt><code>stw r2,@(r3,r4) &lt;-</code><dt><code>mulx a0,r8,r9</code><dd>Same as previous example, except that the &lsquo;<samp><span class="samp">mulx</span></samp>&rsquo; instruction is
executed before the &lsquo;<samp><span class="samp">stw</span></samp>&rsquo; instruction.
</dl>
<p><a name="index-symbol-names_002c-_0040samp_007b_0024_007d-in-1018"></a><a name="index-g_t_0040code_007b_0024_007d-in-symbol-names-1019"></a>Since &lsquo;<samp><span class="samp">$</span></samp>&rsquo; has no special meaning, you may use it in symbol names.
</body></html>