hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!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-2016 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>