OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [opcodes/] [ia64-opc-b.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/* ia64-opc-b.c -- IA-64 `B' opcode table.
2
   Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
3
   Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
4
 
5
   This file is part of GDB, GAS, and the GNU binutils.
6
 
7
   GDB, GAS, and the GNU binutils are free software; you can redistribute
8
   them and/or modify them under the terms of the GNU General Public
9
   License as published by the Free Software Foundation; either version
10
   2, or (at your option) any later version.
11
 
12
   GDB, GAS, and the GNU binutils are distributed in the hope that they
13
   will be useful, but WITHOUT ANY WARRANTY; without even the implied
14
   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
15
   the GNU General Public License for more details.
16
 
17
   You should have received a copy of the GNU General Public License
18
   along with this file; see the file COPYING.  If not, write to the
19
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20
   02111-1307, USA.  */
21
 
22
#include "ia64-opc.h"
23
 
24
#define B0      IA64_TYPE_B, 0
25
#define B       IA64_TYPE_B, 1
26
 
27
/* instruction bit fields: */
28
#define bBtype(x)       (((ia64_insn) ((x) & 0x7)) << 6)
29
#define bD(x)           (((ia64_insn) ((x) & 0x1)) << 35)
30
#define bIh(x)          (((ia64_insn) ((x) & 0x1)) << 35)
31
#define bPa(x)          (((ia64_insn) ((x) & 0x1)) << 12)
32
#define bPr(x)          (((ia64_insn) ((x) & 0x3f)) << 0)
33
#define bWha(x)         (((ia64_insn) ((x) & 0x3)) << 33)
34
#define bWhb(x)         (((ia64_insn) ((x) & 0x3)) << 3)
35
#define bX6(x)          (((ia64_insn) ((x) & 0x3f)) << 27)
36
 
37
#define mBtype          bBtype (-1)
38
#define mD              bD (-1)
39
#define mIh             bIh (-1)
40
#define mPa             bPa (-1)
41
#define mPr             bPr (-1)
42
#define mWha            bWha (-1)
43
#define mWhb            bWhb (-1)
44
#define mX6             bX6 (-1)
45
 
46
#define OpX6(a,b)       (bOp (a) | bX6 (b)), (mOp | mX6)
47
#define OpPaWhaD(a,b,c,d) \
48
        (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD)
49
#define OpBtypePaWhaD(a,b,c,d,e) \
50
        (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e)), \
51
        (mOp | mBtype | mPa | mWha | mD)
52
#define OpBtypePaWhaDPr(a,b,c,d,e,f) \
53
        (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e) | bPr (f)), \
54
        (mOp | mBtype | mPa | mWha | mD | mPr)
55
#define OpX6BtypePaWhaD(a,b,c,d,e,f) \
56
        (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f)), \
57
        (mOp | mX6 | mBtype | mPa | mWha | mD)
58
#define OpX6BtypePaWhaDPr(a,b,c,d,e,f,g) \
59
   (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f) | bPr (g)), \
60
        (mOp | mX6 | mBtype | mPa | mWha | mD | mPr)
61
#define OpIhWhb(a,b,c) \
62
        (bOp (a) | bIh (b) | bWhb (c)), \
63
        (mOp | mIh | mWhb)
64
#define OpX6IhWhb(a,b,c,d) \
65
        (bOp (a) | bX6 (b) | bIh (c) | bWhb (d)), \
66
        (mOp | mX6 | mIh | mWhb)
67
 
68
struct ia64_opcode ia64_opcodes_b[] =
69
  {
70
    /* B-type instruction encodings (sorted according to major opcode) */
71
 
72
#define BR(a,b) \
73
      B0, OpX6BtypePaWhaDPr (0, 0x20, 0, a, 0, b, 0), {B2}, PSEUDO
74
    {"br.few",          BR (0, 0)},
75
    {"br",              BR (0, 0)},
76
    {"br.few.clr",      BR (0, 1)},
77
    {"br.clr",          BR (0, 1)},
78
    {"br.many",         BR (1, 0)},
79
    {"br.many.clr",     BR (1, 1)},
80
#undef BR
81
 
82
#define BR(a,b,c,d,e)   B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}
83
    {"br.cond.sptk.few",        BR (0x20, 0, 0, 0, 0)},
84
    {"br.cond.sptk",            BR (0x20, 0, 0, 0, 0), PSEUDO},
85
    {"br.cond.sptk.few.clr",    BR (0x20, 0, 0, 0, 1)},
86
    {"br.cond.sptk.clr",        BR (0x20, 0, 0, 0, 1), PSEUDO},
87
    {"br.cond.spnt.few",        BR (0x20, 0, 0, 1, 0)},
88
    {"br.cond.spnt",            BR (0x20, 0, 0, 1, 0), PSEUDO},
89
    {"br.cond.spnt.few.clr",    BR (0x20, 0, 0, 1, 1)},
90
    {"br.cond.spnt.clr",        BR (0x20, 0, 0, 1, 1), PSEUDO},
91
    {"br.cond.dptk.few",        BR (0x20, 0, 0, 2, 0)},
92
    {"br.cond.dptk",            BR (0x20, 0, 0, 2, 0), PSEUDO},
93
    {"br.cond.dptk.few.clr",    BR (0x20, 0, 0, 2, 1)},
94
    {"br.cond.dptk.clr",        BR (0x20, 0, 0, 2, 1), PSEUDO},
95
    {"br.cond.dpnt.few",        BR (0x20, 0, 0, 3, 0)},
96
    {"br.cond.dpnt",            BR (0x20, 0, 0, 3, 0), PSEUDO},
97
    {"br.cond.dpnt.few.clr",    BR (0x20, 0, 0, 3, 1)},
98
    {"br.cond.dpnt.clr",        BR (0x20, 0, 0, 3, 1), PSEUDO},
99
    {"br.cond.sptk.many",       BR (0x20, 0, 1, 0, 0)},
100
    {"br.cond.sptk.many.clr",   BR (0x20, 0, 1, 0, 1)},
101
    {"br.cond.spnt.many",       BR (0x20, 0, 1, 1, 0)},
102
    {"br.cond.spnt.many.clr",   BR (0x20, 0, 1, 1, 1)},
103
    {"br.cond.dptk.many",       BR (0x20, 0, 1, 2, 0)},
104
    {"br.cond.dptk.many.clr",   BR (0x20, 0, 1, 2, 1)},
105
    {"br.cond.dpnt.many",       BR (0x20, 0, 1, 3, 0)},
106
    {"br.cond.dpnt.many.clr",   BR (0x20, 0, 1, 3, 1)},
107
    {"br.sptk.few",             BR (0x20, 0, 0, 0, 0)},
108
    {"br.sptk",                 BR (0x20, 0, 0, 0, 0), PSEUDO},
109
    {"br.sptk.few.clr",         BR (0x20, 0, 0, 0, 1)},
110
    {"br.sptk.clr",             BR (0x20, 0, 0, 0, 1), PSEUDO},
111
    {"br.spnt.few",             BR (0x20, 0, 0, 1, 0)},
112
    {"br.spnt",                 BR (0x20, 0, 0, 1, 0), PSEUDO},
113
    {"br.spnt.few.clr",         BR (0x20, 0, 0, 1, 1)},
114
    {"br.spnt.clr",             BR (0x20, 0, 0, 1, 1), PSEUDO},
115
    {"br.dptk.few",             BR (0x20, 0, 0, 2, 0)},
116
    {"br.dptk",                 BR (0x20, 0, 0, 2, 0), PSEUDO},
117
    {"br.dptk.few.clr",         BR (0x20, 0, 0, 2, 1)},
118
    {"br.dptk.clr",             BR (0x20, 0, 0, 2, 1), PSEUDO},
119
    {"br.dpnt.few",             BR (0x20, 0, 0, 3, 0)},
120
    {"br.dpnt",                 BR (0x20, 0, 0, 3, 0), PSEUDO},
121
    {"br.dpnt.few.clr",         BR (0x20, 0, 0, 3, 1)},
122
    {"br.dpnt.clr",             BR (0x20, 0, 0, 3, 1), PSEUDO},
123
    {"br.sptk.many",            BR (0x20, 0, 1, 0, 0)},
124
    {"br.sptk.many.clr",        BR (0x20, 0, 1, 0, 1)},
125
    {"br.spnt.many",            BR (0x20, 0, 1, 1, 0)},
126
    {"br.spnt.many.clr",        BR (0x20, 0, 1, 1, 1)},
127
    {"br.dptk.many",            BR (0x20, 0, 1, 2, 0)},
128
    {"br.dptk.many.clr",        BR (0x20, 0, 1, 2, 1)},
129
    {"br.dpnt.many",            BR (0x20, 0, 1, 3, 0)},
130
    {"br.dpnt.many.clr",        BR (0x20, 0, 1, 3, 1)},
131
    {"br.ia.sptk.few",          BR (0x20, 1, 0, 0, 0)},
132
    {"br.ia.sptk",              BR (0x20, 1, 0, 0, 0), PSEUDO},
133
    {"br.ia.sptk.few.clr",      BR (0x20, 1, 0, 0, 1)},
134
    {"br.ia.sptk.clr",          BR (0x20, 1, 0, 0, 1), PSEUDO},
135
    {"br.ia.spnt.few",          BR (0x20, 1, 0, 1, 0)},
136
    {"br.ia.spnt",              BR (0x20, 1, 0, 1, 0), PSEUDO},
137
    {"br.ia.spnt.few.clr",      BR (0x20, 1, 0, 1, 1)},
138
    {"br.ia.spnt.clr",          BR (0x20, 1, 0, 1, 1), PSEUDO},
139
    {"br.ia.dptk.few",          BR (0x20, 1, 0, 2, 0)},
140
    {"br.ia.dptk",              BR (0x20, 1, 0, 2, 0), PSEUDO},
141
    {"br.ia.dptk.few.clr",      BR (0x20, 1, 0, 2, 1)},
142
    {"br.ia.dptk.clr",          BR (0x20, 1, 0, 2, 1), PSEUDO},
143
    {"br.ia.dpnt.few",          BR (0x20, 1, 0, 3, 0)},
144
    {"br.ia.dpnt",              BR (0x20, 1, 0, 3, 0), PSEUDO},
145
    {"br.ia.dpnt.few.clr",      BR (0x20, 1, 0, 3, 1)},
146
    {"br.ia.dpnt.clr",          BR (0x20, 1, 0, 3, 1), PSEUDO},
147
    {"br.ia.sptk.many",         BR (0x20, 1, 1, 0, 0)},
148
    {"br.ia.sptk.many.clr",     BR (0x20, 1, 1, 0, 1)},
149
    {"br.ia.spnt.many",         BR (0x20, 1, 1, 1, 0)},
150
    {"br.ia.spnt.many.clr",     BR (0x20, 1, 1, 1, 1)},
151
    {"br.ia.dptk.many",         BR (0x20, 1, 1, 2, 0)},
152
    {"br.ia.dptk.many.clr",     BR (0x20, 1, 1, 2, 1)},
153
    {"br.ia.dpnt.many",         BR (0x20, 1, 1, 3, 0)},
154
    {"br.ia.dpnt.many.clr",     BR (0x20, 1, 1, 3, 1)},
155
    {"br.ret.sptk.few",         BR (0x21, 4, 0, 0, 0), MOD_RRBS},
156
    {"br.ret.sptk",             BR (0x21, 4, 0, 0, 0), PSEUDO | MOD_RRBS},
157
    {"br.ret.sptk.few.clr",     BR (0x21, 4, 0, 0, 1), MOD_RRBS},
158
    {"br.ret.sptk.clr",         BR (0x21, 4, 0, 0, 1), PSEUDO | MOD_RRBS},
159
    {"br.ret.spnt.few",         BR (0x21, 4, 0, 1, 0), MOD_RRBS},
160
    {"br.ret.spnt",             BR (0x21, 4, 0, 1, 0), PSEUDO | MOD_RRBS},
161
    {"br.ret.spnt.few.clr",     BR (0x21, 4, 0, 1, 1), MOD_RRBS},
162
    {"br.ret.spnt.clr",         BR (0x21, 4, 0, 1, 1), PSEUDO | MOD_RRBS},
163
    {"br.ret.dptk.few",         BR (0x21, 4, 0, 2, 0), MOD_RRBS},
164
    {"br.ret.dptk",             BR (0x21, 4, 0, 2, 0), PSEUDO | MOD_RRBS},
165
    {"br.ret.dptk.few.clr",     BR (0x21, 4, 0, 2, 1), MOD_RRBS},
166
    {"br.ret.dptk.clr",         BR (0x21, 4, 0, 2, 1), PSEUDO | MOD_RRBS},
167
    {"br.ret.dpnt.few",         BR (0x21, 4, 0, 3, 0), MOD_RRBS},
168
    {"br.ret.dpnt",             BR (0x21, 4, 0, 3, 0), PSEUDO | MOD_RRBS},
169
    {"br.ret.dpnt.few.clr",     BR (0x21, 4, 0, 3, 1), MOD_RRBS},
170
    {"br.ret.dpnt.clr",         BR (0x21, 4, 0, 3, 1), PSEUDO | MOD_RRBS},
171
    {"br.ret.sptk.many",        BR (0x21, 4, 1, 0, 0), MOD_RRBS},
172
    {"br.ret.sptk.many.clr",    BR (0x21, 4, 1, 0, 1), MOD_RRBS},
173
    {"br.ret.spnt.many",        BR (0x21, 4, 1, 1, 0), MOD_RRBS},
174
    {"br.ret.spnt.many.clr",    BR (0x21, 4, 1, 1, 1), MOD_RRBS},
175
    {"br.ret.dptk.many",        BR (0x21, 4, 1, 2, 0), MOD_RRBS},
176
    {"br.ret.dptk.many.clr",    BR (0x21, 4, 1, 2, 1), MOD_RRBS},
177
    {"br.ret.dpnt.many",        BR (0x21, 4, 1, 3, 0), MOD_RRBS},
178
    {"br.ret.dpnt.many.clr",    BR (0x21, 4, 1, 3, 1), MOD_RRBS},
179
#undef BR
180
 
181
    {"cover",           B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS},
182
    {"clrrrb",          B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS},
183
    {"clrrrb.pr",       B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS},
184
    {"rfi",             B0, OpX6 (0, 0x08), {0, }, NO_PRED | LAST | PRIV | MOD_RRBS},
185
    {"bsw.0",           B0, OpX6 (0, 0x0c), {0, }, NO_PRED | LAST | PRIV},
186
    {"bsw.1",           B0, OpX6 (0, 0x0d), {0, }, NO_PRED | LAST | PRIV},
187
    {"epc",             B0, OpX6 (0, 0x10), {0, }, NO_PRED},
188
 
189
    {"break.b",         B0, OpX6 (0, 0x00), {IMMU21}},
190
 
191
    {"br.call.sptk.few",        B, OpPaWhaD (1, 0, 0, 0), {B1, B2}},
192
    {"br.call.sptk",            B, OpPaWhaD (1, 0, 0, 0), {B1, B2}, PSEUDO},
193
    {"br.call.sptk.few.clr",    B, OpPaWhaD (1, 0, 0, 1), {B1, B2}},
194
    {"br.call.sptk.clr",        B, OpPaWhaD (1, 0, 0, 1), {B1, B2}, PSEUDO},
195
    {"br.call.spnt.few",        B, OpPaWhaD (1, 0, 1, 0), {B1, B2}},
196
    {"br.call.spnt",            B, OpPaWhaD (1, 0, 1, 0), {B1, B2}, PSEUDO},
197
    {"br.call.spnt.few.clr",    B, OpPaWhaD (1, 0, 1, 1), {B1, B2}},
198
    {"br.call.spnt.clr",        B, OpPaWhaD (1, 0, 1, 1), {B1, B2}, PSEUDO},
199
    {"br.call.dptk.few",        B, OpPaWhaD (1, 0, 2, 0), {B1, B2}},
200
    {"br.call.dptk",            B, OpPaWhaD (1, 0, 2, 0), {B1, B2}, PSEUDO},
201
    {"br.call.dptk.few.clr",    B, OpPaWhaD (1, 0, 2, 1), {B1, B2}},
202
    {"br.call.dptk.clr",        B, OpPaWhaD (1, 0, 2, 1), {B1, B2}, PSEUDO},
203
    {"br.call.dpnt.few",        B, OpPaWhaD (1, 0, 3, 0), {B1, B2}},
204
    {"br.call.dpnt",            B, OpPaWhaD (1, 0, 3, 0), {B1, B2}, PSEUDO},
205
    {"br.call.dpnt.few.clr",    B, OpPaWhaD (1, 0, 3, 1), {B1, B2}},
206
    {"br.call.dpnt.clr",        B, OpPaWhaD (1, 0, 3, 1), {B1, B2}, PSEUDO},
207
    {"br.call.sptk.many",       B, OpPaWhaD (1, 1, 0, 0), {B1, B2}},
208
    {"br.call.sptk.many.clr",   B, OpPaWhaD (1, 1, 0, 1), {B1, B2}},
209
    {"br.call.spnt.many",       B, OpPaWhaD (1, 1, 1, 0), {B1, B2}},
210
    {"br.call.spnt.many.clr",   B, OpPaWhaD (1, 1, 1, 1), {B1, B2}},
211
    {"br.call.dptk.many",       B, OpPaWhaD (1, 1, 2, 0), {B1, B2}},
212
    {"br.call.dptk.many.clr",   B, OpPaWhaD (1, 1, 2, 1), {B1, B2}},
213
    {"br.call.dpnt.many",       B, OpPaWhaD (1, 1, 3, 0), {B1, B2}},
214
    {"br.call.dpnt.many.clr",   B, OpPaWhaD (1, 1, 3, 1), {B1, B2}},
215
 
216
#define BRP(a,b,c) \
217
      B0, OpX6IhWhb (2, a, b, c), {B2, TAG13}, NO_PRED
218
    {"brp.sptk",                BRP (0x10, 0, 0)},
219
    {"brp.dptk",                BRP (0x10, 0, 2)},
220
    {"brp.sptk.imp",            BRP (0x10, 1, 0)},
221
    {"brp.dptk.imp",            BRP (0x10, 1, 2)},
222
    {"brp.ret.sptk",            BRP (0x11, 0, 0)},
223
    {"brp.ret.dptk",            BRP (0x11, 0, 2)},
224
    {"brp.ret.sptk.imp",        BRP (0x11, 1, 0)},
225
    {"brp.ret.dptk.imp",        BRP (0x11, 1, 2)},
226
#undef BRP
227
 
228
    {"nop.b",           B0, OpX6 (2, 0x00), {IMMU21}},
229
 
230
#define BR(a,b) \
231
      B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO
232
    {"br.few",          BR (0, 0)},
233
    {"br",              BR (0, 0)},
234
    {"br.few.clr",      BR (0, 1)},
235
    {"br.clr",          BR (0, 1)},
236
    {"br.many",         BR (1, 0)},
237
    {"br.many.clr",     BR (1, 1)},
238
#undef BR
239
 
240
#define BR(a,b,c) \
241
      B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}
242
    {"br.cond.sptk.few",        BR (0, 0, 0)},
243
    {"br.cond.sptk",            BR (0, 0, 0), PSEUDO},
244
    {"br.cond.sptk.few.clr",    BR (0, 0, 1)},
245
    {"br.cond.sptk.clr",        BR (0, 0, 1), PSEUDO},
246
    {"br.cond.spnt.few",        BR (0, 1, 0)},
247
    {"br.cond.spnt",            BR (0, 1, 0), PSEUDO},
248
    {"br.cond.spnt.few.clr",    BR (0, 1, 1)},
249
    {"br.cond.spnt.clr",        BR (0, 1, 1), PSEUDO},
250
    {"br.cond.dptk.few",        BR (0, 2, 0)},
251
    {"br.cond.dptk",            BR (0, 2, 0), PSEUDO},
252
    {"br.cond.dptk.few.clr",    BR (0, 2, 1)},
253
    {"br.cond.dptk.clr",        BR (0, 2, 1), PSEUDO},
254
    {"br.cond.dpnt.few",        BR (0, 3, 0)},
255
    {"br.cond.dpnt",            BR (0, 3, 0), PSEUDO},
256
    {"br.cond.dpnt.few.clr",    BR (0, 3, 1)},
257
    {"br.cond.dpnt.clr",        BR (0, 3, 1), PSEUDO},
258
    {"br.cond.sptk.many",       BR (1, 0, 0)},
259
    {"br.cond.sptk.many.clr",   BR (1, 0, 1)},
260
    {"br.cond.spnt.many",       BR (1, 1, 0)},
261
    {"br.cond.spnt.many.clr",   BR (1, 1, 1)},
262
    {"br.cond.dptk.many",       BR (1, 2, 0)},
263
    {"br.cond.dptk.many.clr",   BR (1, 2, 1)},
264
    {"br.cond.dpnt.many",       BR (1, 3, 0)},
265
    {"br.cond.dpnt.many.clr",   BR (1, 3, 1)},
266
    {"br.sptk.few",             BR (0, 0, 0)},
267
    {"br.sptk",                 BR (0, 0, 0), PSEUDO},
268
    {"br.sptk.few.clr",         BR (0, 0, 1)},
269
    {"br.sptk.clr",             BR (0, 0, 1), PSEUDO},
270
    {"br.spnt.few",             BR (0, 1, 0)},
271
    {"br.spnt",                 BR (0, 1, 0), PSEUDO},
272
    {"br.spnt.few.clr",         BR (0, 1, 1)},
273
    {"br.spnt.clr",             BR (0, 1, 1), PSEUDO},
274
    {"br.dptk.few",             BR (0, 2, 0)},
275
    {"br.dptk",                 BR (0, 2, 0), PSEUDO},
276
    {"br.dptk.few.clr",         BR (0, 2, 1)},
277
    {"br.dptk.clr",             BR (0, 2, 1), PSEUDO},
278
    {"br.dpnt.few",             BR (0, 3, 0)},
279
    {"br.dpnt",                 BR (0, 3, 0), PSEUDO},
280
    {"br.dpnt.few.clr",         BR (0, 3, 1)},
281
    {"br.dpnt.clr",             BR (0, 3, 1), PSEUDO},
282
    {"br.sptk.many",            BR (1, 0, 0)},
283
    {"br.sptk.many.clr",        BR (1, 0, 1)},
284
    {"br.spnt.many",            BR (1, 1, 0)},
285
    {"br.spnt.many.clr",        BR (1, 1, 1)},
286
    {"br.dptk.many",            BR (1, 2, 0)},
287
    {"br.dptk.many.clr",        BR (1, 2, 1)},
288
    {"br.dpnt.many",            BR (1, 3, 0)},
289
    {"br.dpnt.many.clr",        BR (1, 3, 1)},
290
#undef BR
291
 
292
#define BR(a,b,c,d) \
293
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2
294
    {"br.wexit.sptk.few",       BR (2, 0, 0, 0) | MOD_RRBS},
295
    {"br.wexit.sptk",           BR (2, 0, 0, 0) | PSEUDO | MOD_RRBS},
296
    {"br.wexit.sptk.few.clr",   BR (2, 0, 0, 1) | MOD_RRBS},
297
    {"br.wexit.sptk.clr",       BR (2, 0, 0, 1) | PSEUDO | MOD_RRBS},
298
    {"br.wexit.spnt.few",       BR (2, 0, 1, 0) | MOD_RRBS},
299
    {"br.wexit.spnt",           BR (2, 0, 1, 0) | PSEUDO | MOD_RRBS},
300
    {"br.wexit.spnt.few.clr",   BR (2, 0, 1, 1) | MOD_RRBS},
301
    {"br.wexit.spnt.clr",       BR (2, 0, 1, 1) | PSEUDO | MOD_RRBS},
302
    {"br.wexit.dptk.few",       BR (2, 0, 2, 0) | MOD_RRBS},
303
    {"br.wexit.dptk",           BR (2, 0, 2, 0) | PSEUDO | MOD_RRBS},
304
    {"br.wexit.dptk.few.clr",   BR (2, 0, 2, 1) | MOD_RRBS},
305
    {"br.wexit.dptk.clr",       BR (2, 0, 2, 1) | PSEUDO | MOD_RRBS},
306
    {"br.wexit.dpnt.few",       BR (2, 0, 3, 0) | MOD_RRBS},
307
    {"br.wexit.dpnt",           BR (2, 0, 3, 0) | PSEUDO | MOD_RRBS},
308
    {"br.wexit.dpnt.few.clr",   BR (2, 0, 3, 1) | MOD_RRBS},
309
    {"br.wexit.dpnt.clr",       BR (2, 0, 3, 1) | PSEUDO | MOD_RRBS},
310
    {"br.wexit.sptk.many",      BR (2, 1, 0, 0) | MOD_RRBS},
311
    {"br.wexit.sptk.many.clr",  BR (2, 1, 0, 1) | MOD_RRBS},
312
    {"br.wexit.spnt.many",      BR (2, 1, 1, 0) | MOD_RRBS},
313
    {"br.wexit.spnt.many.clr",  BR (2, 1, 1, 1) | MOD_RRBS},
314
    {"br.wexit.dptk.many",      BR (2, 1, 2, 0) | MOD_RRBS},
315
    {"br.wexit.dptk.many.clr",  BR (2, 1, 2, 1) | MOD_RRBS},
316
    {"br.wexit.dpnt.many",      BR (2, 1, 3, 0) | MOD_RRBS},
317
    {"br.wexit.dpnt.many.clr",  BR (2, 1, 3, 1) | MOD_RRBS},
318
    {"br.wtop.sptk.few",        BR (3, 0, 0, 0) | MOD_RRBS},
319
    {"br.wtop.sptk",            BR (3, 0, 0, 0) | PSEUDO | MOD_RRBS},
320
    {"br.wtop.sptk.few.clr",    BR (3, 0, 0, 1) | MOD_RRBS},
321
    {"br.wtop.sptk.clr",        BR (3, 0, 0, 1) | PSEUDO | MOD_RRBS},
322
    {"br.wtop.spnt.few",        BR (3, 0, 1, 0) | MOD_RRBS},
323
    {"br.wtop.spnt",            BR (3, 0, 1, 0) | PSEUDO | MOD_RRBS},
324
    {"br.wtop.spnt.few.clr",    BR (3, 0, 1, 1) | MOD_RRBS},
325
    {"br.wtop.spnt.clr",        BR (3, 0, 1, 1) | PSEUDO | MOD_RRBS},
326
    {"br.wtop.dptk.few",        BR (3, 0, 2, 0) | MOD_RRBS},
327
    {"br.wtop.dptk",            BR (3, 0, 2, 0) | PSEUDO | MOD_RRBS},
328
    {"br.wtop.dptk.few.clr",    BR (3, 0, 2, 1) | MOD_RRBS},
329
    {"br.wtop.dptk.clr",        BR (3, 0, 2, 1) | PSEUDO | MOD_RRBS},
330
    {"br.wtop.dpnt.few",        BR (3, 0, 3, 0) | MOD_RRBS},
331
    {"br.wtop.dpnt",            BR (3, 0, 3, 0) | PSEUDO | MOD_RRBS},
332
    {"br.wtop.dpnt.few.clr",    BR (3, 0, 3, 1) | MOD_RRBS},
333
    {"br.wtop.dpnt.clr",        BR (3, 0, 3, 1) | PSEUDO | MOD_RRBS},
334
    {"br.wtop.sptk.many",       BR (3, 1, 0, 0) | MOD_RRBS},
335
    {"br.wtop.sptk.many.clr",   BR (3, 1, 0, 1) | MOD_RRBS},
336
    {"br.wtop.spnt.many",       BR (3, 1, 1, 0) | MOD_RRBS},
337
    {"br.wtop.spnt.many.clr",   BR (3, 1, 1, 1) | MOD_RRBS},
338
    {"br.wtop.dptk.many",       BR (3, 1, 2, 0) | MOD_RRBS},
339
    {"br.wtop.dptk.many.clr",   BR (3, 1, 2, 1) | MOD_RRBS},
340
    {"br.wtop.dpnt.many",       BR (3, 1, 3, 0) | MOD_RRBS},
341
    {"br.wtop.dpnt.many.clr",   BR (3, 1, 3, 1) | MOD_RRBS},
342
 
343
#undef BR
344
#define BR(a,b,c,d) \
345
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED
346
    {"br.cloop.sptk.few",       BR (5, 0, 0, 0)},
347
    {"br.cloop.sptk",           BR (5, 0, 0, 0) | PSEUDO},
348
    {"br.cloop.sptk.few.clr",   BR (5, 0, 0, 1)},
349
    {"br.cloop.sptk.clr",       BR (5, 0, 0, 1) | PSEUDO},
350
    {"br.cloop.spnt.few",       BR (5, 0, 1, 0)},
351
    {"br.cloop.spnt",           BR (5, 0, 1, 0) | PSEUDO},
352
    {"br.cloop.spnt.few.clr",   BR (5, 0, 1, 1)},
353
    {"br.cloop.spnt.clr",       BR (5, 0, 1, 1) | PSEUDO},
354
    {"br.cloop.dptk.few",       BR (5, 0, 2, 0)},
355
    {"br.cloop.dptk",           BR (5, 0, 2, 0) | PSEUDO},
356
    {"br.cloop.dptk.few.clr",   BR (5, 0, 2, 1)},
357
    {"br.cloop.dptk.clr",       BR (5, 0, 2, 1) | PSEUDO},
358
    {"br.cloop.dpnt.few",       BR (5, 0, 3, 0)},
359
    {"br.cloop.dpnt",           BR (5, 0, 3, 0) | PSEUDO},
360
    {"br.cloop.dpnt.few.clr",   BR (5, 0, 3, 1)},
361
    {"br.cloop.dpnt.clr",       BR (5, 0, 3, 1) | PSEUDO},
362
    {"br.cloop.sptk.many",      BR (5, 1, 0, 0)},
363
    {"br.cloop.sptk.many.clr",  BR (5, 1, 0, 1)},
364
    {"br.cloop.spnt.many",      BR (5, 1, 1, 0)},
365
    {"br.cloop.spnt.many.clr",  BR (5, 1, 1, 1)},
366
    {"br.cloop.dptk.many",      BR (5, 1, 2, 0)},
367
    {"br.cloop.dptk.many.clr",  BR (5, 1, 2, 1)},
368
    {"br.cloop.dpnt.many",      BR (5, 1, 3, 0)},
369
    {"br.cloop.dpnt.many.clr",  BR (5, 1, 3, 1)},
370
    {"br.cexit.sptk.few",       BR (6, 0, 0, 0) | MOD_RRBS},
371
    {"br.cexit.sptk",           BR (6, 0, 0, 0) | PSEUDO | MOD_RRBS},
372
    {"br.cexit.sptk.few.clr",   BR (6, 0, 0, 1) | MOD_RRBS},
373
    {"br.cexit.sptk.clr",       BR (6, 0, 0, 1) | PSEUDO | MOD_RRBS},
374
    {"br.cexit.spnt.few",       BR (6, 0, 1, 0) | MOD_RRBS},
375
    {"br.cexit.spnt",           BR (6, 0, 1, 0) | PSEUDO | MOD_RRBS},
376
    {"br.cexit.spnt.few.clr",   BR (6, 0, 1, 1) | MOD_RRBS},
377
    {"br.cexit.spnt.clr",       BR (6, 0, 1, 1) | PSEUDO | MOD_RRBS},
378
    {"br.cexit.dptk.few",       BR (6, 0, 2, 0) | MOD_RRBS},
379
    {"br.cexit.dptk",           BR (6, 0, 2, 0) | PSEUDO | MOD_RRBS},
380
    {"br.cexit.dptk.few.clr",   BR (6, 0, 2, 1) | MOD_RRBS},
381
    {"br.cexit.dptk.clr",       BR (6, 0, 2, 1) | PSEUDO | MOD_RRBS},
382
    {"br.cexit.dpnt.few",       BR (6, 0, 3, 0) | MOD_RRBS},
383
    {"br.cexit.dpnt",           BR (6, 0, 3, 0) | PSEUDO | MOD_RRBS},
384
    {"br.cexit.dpnt.few.clr",   BR (6, 0, 3, 1) | MOD_RRBS},
385
    {"br.cexit.dpnt.clr",       BR (6, 0, 3, 1) | PSEUDO | MOD_RRBS},
386
    {"br.cexit.sptk.many",      BR (6, 1, 0, 0) | MOD_RRBS},
387
    {"br.cexit.sptk.many.clr",  BR (6, 1, 0, 1) | MOD_RRBS},
388
    {"br.cexit.spnt.many",      BR (6, 1, 1, 0) | MOD_RRBS},
389
    {"br.cexit.spnt.many.clr",  BR (6, 1, 1, 1) | MOD_RRBS},
390
    {"br.cexit.dptk.many",      BR (6, 1, 2, 0) | MOD_RRBS},
391
    {"br.cexit.dptk.many.clr",  BR (6, 1, 2, 1) | MOD_RRBS},
392
    {"br.cexit.dpnt.many",      BR (6, 1, 3, 0) | MOD_RRBS},
393
    {"br.cexit.dpnt.many.clr",  BR (6, 1, 3, 1) | MOD_RRBS},
394
    {"br.ctop.sptk.few",        BR (7, 0, 0, 0) | MOD_RRBS},
395
    {"br.ctop.sptk",            BR (7, 0, 0, 0) | PSEUDO | MOD_RRBS},
396
    {"br.ctop.sptk.few.clr",    BR (7, 0, 0, 1) | MOD_RRBS},
397
    {"br.ctop.sptk.clr",        BR (7, 0, 0, 1) | PSEUDO | MOD_RRBS},
398
    {"br.ctop.spnt.few",        BR (7, 0, 1, 0) | MOD_RRBS},
399
    {"br.ctop.spnt",            BR (7, 0, 1, 0) | PSEUDO | MOD_RRBS},
400
    {"br.ctop.spnt.few.clr",    BR (7, 0, 1, 1) | MOD_RRBS},
401
    {"br.ctop.spnt.clr",        BR (7, 0, 1, 1) | PSEUDO | MOD_RRBS},
402
    {"br.ctop.dptk.few",        BR (7, 0, 2, 0) | MOD_RRBS},
403
    {"br.ctop.dptk",            BR (7, 0, 2, 0) | PSEUDO | MOD_RRBS},
404
    {"br.ctop.dptk.few.clr",    BR (7, 0, 2, 1) | MOD_RRBS},
405
    {"br.ctop.dptk.clr",        BR (7, 0, 2, 1) | PSEUDO | MOD_RRBS},
406
    {"br.ctop.dpnt.few",        BR (7, 0, 3, 0) | MOD_RRBS},
407
    {"br.ctop.dpnt",            BR (7, 0, 3, 0) | PSEUDO | MOD_RRBS},
408
    {"br.ctop.dpnt.few.clr",    BR (7, 0, 3, 1) | MOD_RRBS},
409
    {"br.ctop.dpnt.clr",        BR (7, 0, 3, 1) | PSEUDO | MOD_RRBS},
410
    {"br.ctop.sptk.many",       BR (7, 1, 0, 0) | MOD_RRBS},
411
    {"br.ctop.sptk.many.clr",   BR (7, 1, 0, 1) | MOD_RRBS},
412
    {"br.ctop.spnt.many",       BR (7, 1, 1, 0) | MOD_RRBS},
413
    {"br.ctop.spnt.many.clr",   BR (7, 1, 1, 1) | MOD_RRBS},
414
    {"br.ctop.dptk.many",       BR (7, 1, 2, 0) | MOD_RRBS},
415
    {"br.ctop.dptk.many.clr",   BR (7, 1, 2, 1) | MOD_RRBS},
416
    {"br.ctop.dpnt.many",       BR (7, 1, 3, 0) | MOD_RRBS},
417
    {"br.ctop.dpnt.many.clr",   BR (7, 1, 3, 1) | MOD_RRBS},
418
 
419
#undef BR
420
#define BR(a,b,c,d) \
421
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2
422
    {"br.call.sptk.few",        B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}},
423
    {"br.call.sptk",            B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, PSEUDO},
424
    {"br.call.sptk.few.clr",    B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}},
425
    {"br.call.sptk.clr",        B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, PSEUDO},
426
    {"br.call.spnt.few",        B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}},
427
    {"br.call.spnt",            B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, PSEUDO},
428
    {"br.call.spnt.few.clr",    B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}},
429
    {"br.call.spnt.clr",        B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, PSEUDO},
430
    {"br.call.dptk.few",        B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}},
431
    {"br.call.dptk",            B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, PSEUDO},
432
    {"br.call.dptk.few.clr",    B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}},
433
    {"br.call.dptk.clr",        B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, PSEUDO},
434
    {"br.call.dpnt.few",        B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}},
435
    {"br.call.dpnt",            B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, PSEUDO},
436
    {"br.call.dpnt.few.clr",    B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}},
437
    {"br.call.dpnt.clr",        B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, PSEUDO},
438
    {"br.call.sptk.many",       B, OpPaWhaD (5, 1, 0, 0), {B1, TGT25c}},
439
    {"br.call.sptk.many.clr",   B, OpPaWhaD (5, 1, 0, 1), {B1, TGT25c}},
440
    {"br.call.spnt.many",       B, OpPaWhaD (5, 1, 1, 0), {B1, TGT25c}},
441
    {"br.call.spnt.many.clr",   B, OpPaWhaD (5, 1, 1, 1), {B1, TGT25c}},
442
    {"br.call.dptk.many",       B, OpPaWhaD (5, 1, 2, 0), {B1, TGT25c}},
443
    {"br.call.dptk.many.clr",   B, OpPaWhaD (5, 1, 2, 1), {B1, TGT25c}},
444
    {"br.call.dpnt.many",       B, OpPaWhaD (5, 1, 3, 0), {B1, TGT25c}},
445
    {"br.call.dpnt.many.clr",   B, OpPaWhaD (5, 1, 3, 1), {B1, TGT25c}},
446
#undef BR
447
 
448
    /* branch predict */
449
#define BRP(a,b) \
450
      B0, OpIhWhb (7, a, b), {TGT25c, TAG13}, NO_PRED
451
    {"brp.sptk",                BRP (0, 0)},
452
    {"brp.loop",                BRP (0, 1)},
453
    {"brp.dptk",                BRP (0, 2)},
454
    {"brp.exit",                BRP (0, 3)},
455
    {"brp.sptk.imp",            BRP (1, 0)},
456
    {"brp.loop.imp",            BRP (1, 1)},
457
    {"brp.dptk.imp",            BRP (1, 2)},
458
    {"brp.exit.imp",            BRP (1, 3)},
459
#undef BRP
460
 
461
    {0}
462
  };
463
 
464
#undef B0
465
#undef B
466
#undef bBtype
467
#undef bD
468
#undef bIh
469
#undef bPa
470
#undef bPr
471
#undef bWha
472
#undef bWhb
473
#undef bX6
474
#undef mBtype
475
#undef mD
476
#undef mIh
477
#undef mPa
478
#undef mPr
479
#undef mWha
480
#undef mWhb
481
#undef mX6
482
#undef OpX6
483
#undef OpPaWhaD
484
#undef OpBtypePaWhaD
485
#undef OpBtypePaWhaDPr
486
#undef OpX6BtypePaWhaD
487
#undef OpX6BtypePaWhaDPr
488
#undef OpIhWhb
489
#undef OpX6IhWhb

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.