toolchain/share/doc/as.html/s390-Aliases.html

150 lines
11 KiB
HTML
Raw Normal View History

2024-01-10 05:24:32 +00:00
<html lang="en">
<head>
<title>s390 Aliases - 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="s390-Syntax.html#s390-Syntax" title="s390 Syntax">
<link rel="prev" href="s390-Formats.html#s390-Formats" title="s390 Formats">
<link rel="next" href="s390-Operand-Modifier.html#s390-Operand-Modifier" title="s390 Operand Modifier">
<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="s390-Aliases"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="s390-Operand-Modifier.html#s390-Operand-Modifier">s390 Operand Modifier</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="s390-Formats.html#s390-Formats">s390 Formats</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="s390-Syntax.html#s390-Syntax">s390 Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.41.3.5 Instruction Aliases</h5>
<p><a name="index-instruction-aliases_002c-s390-2076"></a><a name="index-s390-instruction-aliases-2077"></a>
A specific bit pattern can have multiple mnemonics, for example
the bit pattern &lsquo;<samp><span class="samp">0xa7000000</span></samp>&rsquo; has the mnemonics &lsquo;<samp><span class="samp">tmh</span></samp>&rsquo; and
&lsquo;<samp><span class="samp">tmlh</span></samp>&rsquo;. In addition, there are a number of mnemonics recognized by
<code>as</code> that are not present in the Principles of Operation.
These are the short forms of the branch instructions, where the condition
code mask operand is encoded in the mnemonic. This is relevant for the
branch instructions, the compare and branch instructions, and the
compare and trap instructions.
<p>For the branch instructions there are 20 condition code strings that can
be used as part of the mnemonic in place of a mask operand in the instruction
format:
<pre class="display">
<p><table summary=""><tr align="left"><th valign="top" width="30%">instruction </th><th valign="top" width="30%">short form
<br></th></tr><tr align="left"><td valign="top" width="30%">bcr M1,R2 </td><td valign="top" width="30%">b&lt;m&gt;r R2
<br></td></tr><tr align="left"><td valign="top" width="30%">bc M1,D2(X2,B2) </td><td valign="top" width="30%">b&lt;m&gt; D2(X2,B2)
<br></td></tr><tr align="left"><td valign="top" width="30%">brc M1,I2 </td><td valign="top" width="30%">j&lt;m&gt; I2
<br></td></tr><tr align="left"><td valign="top" width="30%">brcl M1,I2 </td><td valign="top" width="30%">jg&lt;m&gt; I2
<br></td></tr></table>
</pre>
<p>In the mnemonic for a branch instruction the condition code string &lt;m&gt;
can be any of the following:
<pre class="display">
<p><table summary=""><tr align="left"><td valign="top">o </td><td valign="top">jump on overflow / if ones
<br></td></tr><tr align="left"><td valign="top">h </td><td valign="top">jump on A high
<br></td></tr><tr align="left"><td valign="top">p </td><td valign="top">jump on plus
<br></td></tr><tr align="left"><td valign="top">nle </td><td valign="top">jump on not low or equal
<br></td></tr><tr align="left"><td valign="top">l </td><td valign="top">jump on A low
<br></td></tr><tr align="left"><td valign="top">m </td><td valign="top">jump on minus
<br></td></tr><tr align="left"><td valign="top">nhe </td><td valign="top">jump on not high or equal
<br></td></tr><tr align="left"><td valign="top">lh </td><td valign="top">jump on low or high
<br></td></tr><tr align="left"><td valign="top">ne </td><td valign="top">jump on A not equal B
<br></td></tr><tr align="left"><td valign="top">nz </td><td valign="top">jump on not zero / if not zeros
<br></td></tr><tr align="left"><td valign="top">e </td><td valign="top">jump on A equal B
<br></td></tr><tr align="left"><td valign="top">z </td><td valign="top">jump on zero / if zeroes
<br></td></tr><tr align="left"><td valign="top">nlh </td><td valign="top">jump on not low or high
<br></td></tr><tr align="left"><td valign="top">he </td><td valign="top">jump on high or equal
<br></td></tr><tr align="left"><td valign="top">nl </td><td valign="top">jump on A not low
<br></td></tr><tr align="left"><td valign="top">nm </td><td valign="top">jump on not minus / if not mixed
<br></td></tr><tr align="left"><td valign="top">le </td><td valign="top">jump on low or equal
<br></td></tr><tr align="left"><td valign="top">nh </td><td valign="top">jump on A not high
<br></td></tr><tr align="left"><td valign="top">np </td><td valign="top">jump on not plus
<br></td></tr><tr align="left"><td valign="top">no </td><td valign="top">jump on not overflow / if not ones
<br></td></tr></table>
</pre>
<p>For the compare and branch, and compare and trap instructions there
are 12 condition code strings that can be used as part of the mnemonic in
place of a mask operand in the instruction format:
<pre class="display">
<p><table summary=""><tr align="left"><th valign="top" width="40%">instruction </th><th valign="top" width="40%">short form
<br></th></tr><tr align="left"><td valign="top" width="40%">crb R1,R2,M3,D4(B4) </td><td valign="top" width="40%">crb&lt;m&gt; R1,R2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">cgrb R1,R2,M3,D4(B4) </td><td valign="top" width="40%">cgrb&lt;m&gt; R1,R2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">crj R1,R2,M3,I4 </td><td valign="top" width="40%">crj&lt;m&gt; R1,R2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">cgrj R1,R2,M3,I4 </td><td valign="top" width="40%">cgrj&lt;m&gt; R1,R2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">cib R1,I2,M3,D4(B4) </td><td valign="top" width="40%">cib&lt;m&gt; R1,I2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">cgib R1,I2,M3,D4(B4) </td><td valign="top" width="40%">cgib&lt;m&gt; R1,I2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">cij R1,I2,M3,I4 </td><td valign="top" width="40%">cij&lt;m&gt; R1,I2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">cgij R1,I2,M3,I4 </td><td valign="top" width="40%">cgij&lt;m&gt; R1,I2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">crt R1,R2,M3 </td><td valign="top" width="40%">crt&lt;m&gt; R1,R2
<br></td></tr><tr align="left"><td valign="top" width="40%">cgrt R1,R2,M3 </td><td valign="top" width="40%">cgrt&lt;m&gt; R1,R2
<br></td></tr><tr align="left"><td valign="top" width="40%">cit R1,I2,M3 </td><td valign="top" width="40%">cit&lt;m&gt; R1,I2
<br></td></tr><tr align="left"><td valign="top" width="40%">cgit R1,I2,M3 </td><td valign="top" width="40%">cgit&lt;m&gt; R1,I2
<br></td></tr><tr align="left"><td valign="top" width="40%">clrb R1,R2,M3,D4(B4) </td><td valign="top" width="40%">clrb&lt;m&gt; R1,R2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">clgrb R1,R2,M3,D4(B4) </td><td valign="top" width="40%">clgrb&lt;m&gt; R1,R2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">clrj R1,R2,M3,I4 </td><td valign="top" width="40%">clrj&lt;m&gt; R1,R2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">clgrj R1,R2,M3,I4 </td><td valign="top" width="40%">clgrj&lt;m&gt; R1,R2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">clib R1,I2,M3,D4(B4) </td><td valign="top" width="40%">clib&lt;m&gt; R1,I2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">clgib R1,I2,M3,D4(B4) </td><td valign="top" width="40%">clgib&lt;m&gt; R1,I2,D4(B4)
<br></td></tr><tr align="left"><td valign="top" width="40%">clij R1,I2,M3,I4 </td><td valign="top" width="40%">clij&lt;m&gt; R1,I2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">clgij R1,I2,M3,I4 </td><td valign="top" width="40%">clgij&lt;m&gt; R1,I2,I4
<br></td></tr><tr align="left"><td valign="top" width="40%">clrt R1,R2,M3 </td><td valign="top" width="40%">clrt&lt;m&gt; R1,R2
<br></td></tr><tr align="left"><td valign="top" width="40%">clgrt R1,R2,M3 </td><td valign="top" width="40%">clgrt&lt;m&gt; R1,R2
<br></td></tr><tr align="left"><td valign="top" width="40%">clfit R1,I2,M3 </td><td valign="top" width="40%">clfit&lt;m&gt; R1,I2
<br></td></tr><tr align="left"><td valign="top" width="40%">clgit R1,I2,M3 </td><td valign="top" width="40%">clgit&lt;m&gt; R1,I2
<br></td></tr></table>
</pre>
<p>In the mnemonic for a compare and branch and compare and trap instruction
the condition code string &lt;m&gt; can be any of the following:
<pre class="display">
<p><table summary=""><tr align="left"><td valign="top">h </td><td valign="top">jump on A high
<br></td></tr><tr align="left"><td valign="top">nle </td><td valign="top">jump on not low or equal
<br></td></tr><tr align="left"><td valign="top">l </td><td valign="top">jump on A low
<br></td></tr><tr align="left"><td valign="top">nhe </td><td valign="top">jump on not high or equal
<br></td></tr><tr align="left"><td valign="top">ne </td><td valign="top">jump on A not equal B
<br></td></tr><tr align="left"><td valign="top">lh </td><td valign="top">jump on low or high
<br></td></tr><tr align="left"><td valign="top">e </td><td valign="top">jump on A equal B
<br></td></tr><tr align="left"><td valign="top">nlh </td><td valign="top">jump on not low or high
<br></td></tr><tr align="left"><td valign="top">nl </td><td valign="top">jump on A not low
<br></td></tr><tr align="left"><td valign="top">he </td><td valign="top">jump on high or equal
<br></td></tr><tr align="left"><td valign="top">nh </td><td valign="top">jump on A not high
<br></td></tr><tr align="left"><td valign="top">le </td><td valign="top">jump on low or equal
<br></td></tr></table>
</pre>
</body></html>