<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".

Copyright (C) 1991-2015 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".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: Opcodes for i860</title>

<meta name="description" content="Using as: Opcodes for i860">
<meta name="keywords" content="Using as: Opcodes for i860">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="i860_002dDependent.html#i860_002dDependent" rel="up" title="i860-Dependent">
<link href="Syntax-of-i860.html#Syntax-of-i860" rel="next" title="Syntax of i860">
<link href="Directives_002di860.html#Directives_002di860" rel="prev" title="Directives-i860">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Opcodes-for-i860"></a>
<div class="header">
<p>
Next: <a href="Syntax-of-i860.html#Syntax-of-i860" accesskey="n" rel="next">Syntax of i860</a>, Previous: <a href="Directives_002di860.html#Directives_002di860" accesskey="p" rel="prev">Directives-i860</a>, Up: <a href="i860_002dDependent.html#i860_002dDependent" accesskey="u" rel="up">i860-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>
</div>
<hr>
<a name="i860-Opcodes"></a>
<h4 class="subsection">9.16.4 i860 Opcodes</h4>

<a name="index-opcodes_002c-i860"></a>
<a name="index-i860-opcodes"></a>
<p>All of the Intel i860XR and i860XP machine instructions are supported. Please see
either <em>i860 Microprocessor Programmer&rsquo;s Reference Manual</em> or <em>i860 Microprocessor Architecture</em> for more information.
</p><a name="Other-instruction-support-_0028pseudo_002dinstructions_0029"></a>
<h4 class="subsubsection">9.16.4.1 Other instruction support (pseudo-instructions)</h4>
<p>For compatibility with some other i860 assemblers, a number of
pseudo-instructions are supported. While these are supported, they are
a very undesirable feature that should be avoided &ndash; in particular, when
they result in an expansion to multiple actual i860 instructions. Below
are the pseudo-instructions that result in expansions.
</p><ul>
<li> Load large immediate into general register:

<p>The pseudo-instruction <code>mov imm,%rn</code> (where the immediate does
not fit within a signed 16-bit field) will be expanded into:
</p><div class="smallexample">
<pre class="smallexample">orh large_imm@h,%r0,%rn
or large_imm@l,%rn,%rn
</pre></div>
</li><li> Load/store with relocatable address expression:

<p>For example, the pseudo-instruction <code>ld.b addr_exp(%rx),%rn</code>
will be expanded into:
</p><div class="smallexample">
<pre class="smallexample">orh addr_exp@ha,%rx,%r31
ld.l addr_exp@l(%r31),%rn
</pre></div>

<p>The analogous expansions apply to <code>ld.x, st.x, fld.x, pfld.x, fst.x</code>, and <code>pst.x</code> as well.
</p></li><li> Signed large immediate with add/subtract:

<p>If any of the arithmetic operations <code>adds, addu, subs, subu</code> are used
with an immediate larger than 16-bits (signed), then they will be expanded.
For instance, the pseudo-instruction <code>adds large_imm,%rx,%rn</code> expands to:
</p><div class="smallexample">
<pre class="smallexample">orh large_imm@h,%r0,%r31
or large_imm@l,%r31,%r31
adds %r31,%rx,%rn
</pre></div>
</li><li> Unsigned large immediate with logical operations:

<p>Logical operations (<code>or, andnot, or, xor</code>) also result in expansions.
The pseudo-instruction <code>or large_imm,%rx,%rn</code> results in:
</p><div class="smallexample">
<pre class="smallexample">orh large_imm@h,%rx,%r31
or large_imm@l,%r31,%rn
</pre></div>

<p>Similarly for the others, except for <code>and</code> which expands to:
</p><div class="smallexample">
<pre class="smallexample">andnot (-1 - large_imm)@h,%rx,%r31
andnot (-1 - large_imm)@l,%r31,%rn
</pre></div>
</li></ul>

<hr>
<div class="header">
<p>
Next: <a href="Syntax-of-i860.html#Syntax-of-i860" accesskey="n" rel="next">Syntax of i860</a>, Previous: <a href="Directives_002di860.html#Directives_002di860" accesskey="p" rel="prev">Directives-i860</a>, Up: <a href="i860_002dDependent.html#i860_002dDependent" accesskey="u" rel="up">i860-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>
</div>



</body>
</html>
