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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [opcodes/] [ia64-opc-b.c] - Blame information for rev 1777

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* 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 bWhc(x)         (((ia64_insn) ((x) & 0x7)) << 32)
36
#define bX6(x)          (((ia64_insn) ((x) & 0x3f)) << 27)
37
 
38
#define mBtype          bBtype (-1)
39
#define mD              bD (-1)
40
#define mIh             bIh (-1)
41
#define mPa             bPa (-1)
42
#define mPr             bPr (-1)
43
#define mWha            bWha (-1)
44
#define mWhb            bWhb (-1)
45
#define mWhc            bWhc (-1)
46
#define mX6             bX6 (-1)
47
 
48
#define OpX6(a,b)       (bOp (a) | bX6 (b)), (mOp | mX6)
49
#define OpPaWhaD(a,b,c,d) \
50
        (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD)
51
#define OpPaWhcD(a,b,c,d) \
52
        (bOp (a) | bPa (b) | bWhc (c) | bD (d)), (mOp | mPa | mWhc | mD)
53
#define OpBtypePaWhaD(a,b,c,d,e) \
54
        (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e)), \
55
        (mOp | mBtype | mPa | mWha | mD)
56
#define OpBtypePaWhaDPr(a,b,c,d,e,f) \
57
        (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e) | bPr (f)), \
58
        (mOp | mBtype | mPa | mWha | mD | mPr)
59
#define OpX6BtypePaWhaD(a,b,c,d,e,f) \
60
        (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f)), \
61
        (mOp | mX6 | mBtype | mPa | mWha | mD)
62
#define OpX6BtypePaWhaDPr(a,b,c,d,e,f,g) \
63
   (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f) | bPr (g)), \
64
        (mOp | mX6 | mBtype | mPa | mWha | mD | mPr)
65
#define OpIhWhb(a,b,c) \
66
        (bOp (a) | bIh (b) | bWhb (c)), \
67
        (mOp | mIh | mWhb)
68
#define OpX6IhWhb(a,b,c,d) \
69
        (bOp (a) | bX6 (b) | bIh (c) | bWhb (d)), \
70
        (mOp | mX6 | mIh | mWhb)
71
 
72
struct ia64_opcode ia64_opcodes_b[] =
73
  {
74
    /* B-type instruction encodings (sorted according to major opcode) */
75
 
76
#define BR(a,b) \
77
      B0, OpX6BtypePaWhaDPr (0, 0x20, 0, a, 0, b, 0), {B2}, PSEUDO
78
    {"br.few",          BR (0, 0)},
79
    {"br",              BR (0, 0)},
80
    {"br.few.clr",      BR (0, 1)},
81
    {"br.clr",          BR (0, 1)},
82
    {"br.many",         BR (1, 0)},
83
    {"br.many.clr",     BR (1, 1)},
84
#undef BR
85
 
86
#define BR(a,b,c,d,e)   B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}
87
    {"br.cond.sptk.few",        BR (0x20, 0, 0, 0, 0)},
88
    {"br.cond.sptk",            BR (0x20, 0, 0, 0, 0), PSEUDO},
89
    {"br.cond.sptk.few.clr",    BR (0x20, 0, 0, 0, 1)},
90
    {"br.cond.sptk.clr",        BR (0x20, 0, 0, 0, 1), PSEUDO},
91
    {"br.cond.spnt.few",        BR (0x20, 0, 0, 1, 0)},
92
    {"br.cond.spnt",            BR (0x20, 0, 0, 1, 0), PSEUDO},
93
    {"br.cond.spnt.few.clr",    BR (0x20, 0, 0, 1, 1)},
94
    {"br.cond.spnt.clr",        BR (0x20, 0, 0, 1, 1), PSEUDO},
95
    {"br.cond.dptk.few",        BR (0x20, 0, 0, 2, 0)},
96
    {"br.cond.dptk",            BR (0x20, 0, 0, 2, 0), PSEUDO},
97
    {"br.cond.dptk.few.clr",    BR (0x20, 0, 0, 2, 1)},
98
    {"br.cond.dptk.clr",        BR (0x20, 0, 0, 2, 1), PSEUDO},
99
    {"br.cond.dpnt.few",        BR (0x20, 0, 0, 3, 0)},
100
    {"br.cond.dpnt",            BR (0x20, 0, 0, 3, 0), PSEUDO},
101
    {"br.cond.dpnt.few.clr",    BR (0x20, 0, 0, 3, 1)},
102
    {"br.cond.dpnt.clr",        BR (0x20, 0, 0, 3, 1), PSEUDO},
103
    {"br.cond.sptk.many",       BR (0x20, 0, 1, 0, 0)},
104
    {"br.cond.sptk.many.clr",   BR (0x20, 0, 1, 0, 1)},
105
    {"br.cond.spnt.many",       BR (0x20, 0, 1, 1, 0)},
106
    {"br.cond.spnt.many.clr",   BR (0x20, 0, 1, 1, 1)},
107
    {"br.cond.dptk.many",       BR (0x20, 0, 1, 2, 0)},
108
    {"br.cond.dptk.many.clr",   BR (0x20, 0, 1, 2, 1)},
109
    {"br.cond.dpnt.many",       BR (0x20, 0, 1, 3, 0)},
110
    {"br.cond.dpnt.many.clr",   BR (0x20, 0, 1, 3, 1)},
111
    {"br.sptk.few",             BR (0x20, 0, 0, 0, 0)},
112
    {"br.sptk",                 BR (0x20, 0, 0, 0, 0), PSEUDO},
113
    {"br.sptk.few.clr",         BR (0x20, 0, 0, 0, 1)},
114
    {"br.sptk.clr",             BR (0x20, 0, 0, 0, 1), PSEUDO},
115
    {"br.spnt.few",             BR (0x20, 0, 0, 1, 0)},
116
    {"br.spnt",                 BR (0x20, 0, 0, 1, 0), PSEUDO},
117
    {"br.spnt.few.clr",         BR (0x20, 0, 0, 1, 1)},
118
    {"br.spnt.clr",             BR (0x20, 0, 0, 1, 1), PSEUDO},
119
    {"br.dptk.few",             BR (0x20, 0, 0, 2, 0)},
120
    {"br.dptk",                 BR (0x20, 0, 0, 2, 0), PSEUDO},
121
    {"br.dptk.few.clr",         BR (0x20, 0, 0, 2, 1)},
122
    {"br.dptk.clr",             BR (0x20, 0, 0, 2, 1), PSEUDO},
123
    {"br.dpnt.few",             BR (0x20, 0, 0, 3, 0)},
124
    {"br.dpnt",                 BR (0x20, 0, 0, 3, 0), PSEUDO},
125
    {"br.dpnt.few.clr",         BR (0x20, 0, 0, 3, 1)},
126
    {"br.dpnt.clr",             BR (0x20, 0, 0, 3, 1), PSEUDO},
127
    {"br.sptk.many",            BR (0x20, 0, 1, 0, 0)},
128
    {"br.sptk.many.clr",        BR (0x20, 0, 1, 0, 1)},
129
    {"br.spnt.many",            BR (0x20, 0, 1, 1, 0)},
130
    {"br.spnt.many.clr",        BR (0x20, 0, 1, 1, 1)},
131
    {"br.dptk.many",            BR (0x20, 0, 1, 2, 0)},
132
    {"br.dptk.many.clr",        BR (0x20, 0, 1, 2, 1)},
133
    {"br.dpnt.many",            BR (0x20, 0, 1, 3, 0)},
134
    {"br.dpnt.many.clr",        BR (0x20, 0, 1, 3, 1)},
135
    {"br.ia.sptk.few",          BR (0x20, 1, 0, 0, 0)},
136
    {"br.ia.sptk",              BR (0x20, 1, 0, 0, 0), PSEUDO},
137
    {"br.ia.sptk.few.clr",      BR (0x20, 1, 0, 0, 1)},
138
    {"br.ia.sptk.clr",          BR (0x20, 1, 0, 0, 1), PSEUDO},
139
    {"br.ia.spnt.few",          BR (0x20, 1, 0, 1, 0)},
140
    {"br.ia.spnt",              BR (0x20, 1, 0, 1, 0), PSEUDO},
141
    {"br.ia.spnt.few.clr",      BR (0x20, 1, 0, 1, 1)},
142
    {"br.ia.spnt.clr",          BR (0x20, 1, 0, 1, 1), PSEUDO},
143
    {"br.ia.dptk.few",          BR (0x20, 1, 0, 2, 0)},
144
    {"br.ia.dptk",              BR (0x20, 1, 0, 2, 0), PSEUDO},
145
    {"br.ia.dptk.few.clr",      BR (0x20, 1, 0, 2, 1)},
146
    {"br.ia.dptk.clr",          BR (0x20, 1, 0, 2, 1), PSEUDO},
147
    {"br.ia.dpnt.few",          BR (0x20, 1, 0, 3, 0)},
148
    {"br.ia.dpnt",              BR (0x20, 1, 0, 3, 0), PSEUDO},
149
    {"br.ia.dpnt.few.clr",      BR (0x20, 1, 0, 3, 1)},
150
    {"br.ia.dpnt.clr",          BR (0x20, 1, 0, 3, 1), PSEUDO},
151
    {"br.ia.sptk.many",         BR (0x20, 1, 1, 0, 0)},
152
    {"br.ia.sptk.many.clr",     BR (0x20, 1, 1, 0, 1)},
153
    {"br.ia.spnt.many",         BR (0x20, 1, 1, 1, 0)},
154
    {"br.ia.spnt.many.clr",     BR (0x20, 1, 1, 1, 1)},
155
    {"br.ia.dptk.many",         BR (0x20, 1, 1, 2, 0)},
156
    {"br.ia.dptk.many.clr",     BR (0x20, 1, 1, 2, 1)},
157
    {"br.ia.dpnt.many",         BR (0x20, 1, 1, 3, 0)},
158
    {"br.ia.dpnt.many.clr",     BR (0x20, 1, 1, 3, 1)},
159
    {"br.ret.sptk.few",         BR (0x21, 4, 0, 0, 0), MOD_RRBS},
160
    {"br.ret.sptk",             BR (0x21, 4, 0, 0, 0), PSEUDO | MOD_RRBS},
161
    {"br.ret.sptk.few.clr",     BR (0x21, 4, 0, 0, 1), MOD_RRBS},
162
    {"br.ret.sptk.clr",         BR (0x21, 4, 0, 0, 1), PSEUDO | MOD_RRBS},
163
    {"br.ret.spnt.few",         BR (0x21, 4, 0, 1, 0), MOD_RRBS},
164
    {"br.ret.spnt",             BR (0x21, 4, 0, 1, 0), PSEUDO | MOD_RRBS},
165
    {"br.ret.spnt.few.clr",     BR (0x21, 4, 0, 1, 1), MOD_RRBS},
166
    {"br.ret.spnt.clr",         BR (0x21, 4, 0, 1, 1), PSEUDO | MOD_RRBS},
167
    {"br.ret.dptk.few",         BR (0x21, 4, 0, 2, 0), MOD_RRBS},
168
    {"br.ret.dptk",             BR (0x21, 4, 0, 2, 0), PSEUDO | MOD_RRBS},
169
    {"br.ret.dptk.few.clr",     BR (0x21, 4, 0, 2, 1), MOD_RRBS},
170
    {"br.ret.dptk.clr",         BR (0x21, 4, 0, 2, 1), PSEUDO | MOD_RRBS},
171
    {"br.ret.dpnt.few",         BR (0x21, 4, 0, 3, 0), MOD_RRBS},
172
    {"br.ret.dpnt",             BR (0x21, 4, 0, 3, 0), PSEUDO | MOD_RRBS},
173
    {"br.ret.dpnt.few.clr",     BR (0x21, 4, 0, 3, 1), MOD_RRBS},
174
    {"br.ret.dpnt.clr",         BR (0x21, 4, 0, 3, 1), PSEUDO | MOD_RRBS},
175
    {"br.ret.sptk.many",        BR (0x21, 4, 1, 0, 0), MOD_RRBS},
176
    {"br.ret.sptk.many.clr",    BR (0x21, 4, 1, 0, 1), MOD_RRBS},
177
    {"br.ret.spnt.many",        BR (0x21, 4, 1, 1, 0), MOD_RRBS},
178
    {"br.ret.spnt.many.clr",    BR (0x21, 4, 1, 1, 1), MOD_RRBS},
179
    {"br.ret.dptk.many",        BR (0x21, 4, 1, 2, 0), MOD_RRBS},
180
    {"br.ret.dptk.many.clr",    BR (0x21, 4, 1, 2, 1), MOD_RRBS},
181
    {"br.ret.dpnt.many",        BR (0x21, 4, 1, 3, 0), MOD_RRBS},
182
    {"br.ret.dpnt.many.clr",    BR (0x21, 4, 1, 3, 1), MOD_RRBS},
183
#undef BR
184
 
185
    {"cover",           B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS},
186
    {"clrrrb",          B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS},
187
    {"clrrrb.pr",       B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS},
188
    {"rfi",             B0, OpX6 (0, 0x08), {0, }, NO_PRED | LAST | PRIV | MOD_RRBS},
189
    {"bsw.0",           B0, OpX6 (0, 0x0c), {0, }, NO_PRED | LAST | PRIV},
190
    {"bsw.1",           B0, OpX6 (0, 0x0d), {0, }, NO_PRED | LAST | PRIV},
191
    {"epc",             B0, OpX6 (0, 0x10), {0, }, NO_PRED},
192
 
193
    {"break.b",         B0, OpX6 (0, 0x00), {IMMU21}},
194
 
195
    {"br.call.sptk.few",        B, OpPaWhcD (1, 0, 1, 0), {B1, B2}},
196
    {"br.call.sptk",            B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, PSEUDO},
197
    {"br.call.sptk.few.clr",    B, OpPaWhcD (1, 0, 1, 1), {B1, B2}},
198
    {"br.call.sptk.clr",        B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, PSEUDO},
199
    {"br.call.spnt.few",        B, OpPaWhcD (1, 0, 3, 0), {B1, B2}},
200
    {"br.call.spnt",            B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, PSEUDO},
201
    {"br.call.spnt.few.clr",    B, OpPaWhcD (1, 0, 3, 1), {B1, B2}},
202
    {"br.call.spnt.clr",        B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, PSEUDO},
203
    {"br.call.dptk.few",        B, OpPaWhcD (1, 0, 5, 0), {B1, B2}},
204
    {"br.call.dptk",            B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, PSEUDO},
205
    {"br.call.dptk.few.clr",    B, OpPaWhcD (1, 0, 5, 1), {B1, B2}},
206
    {"br.call.dptk.clr",        B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, PSEUDO},
207
    {"br.call.dpnt.few",        B, OpPaWhcD (1, 0, 7, 0), {B1, B2}},
208
    {"br.call.dpnt",            B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, PSEUDO},
209
    {"br.call.dpnt.few.clr",    B, OpPaWhcD (1, 0, 7, 1), {B1, B2}},
210
    {"br.call.dpnt.clr",        B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, PSEUDO},
211
    {"br.call.sptk.many",       B, OpPaWhcD (1, 1, 1, 0), {B1, B2}},
212
    {"br.call.sptk.many.clr",   B, OpPaWhcD (1, 1, 1, 1), {B1, B2}},
213
    {"br.call.spnt.many",       B, OpPaWhcD (1, 1, 3, 0), {B1, B2}},
214
    {"br.call.spnt.many.clr",   B, OpPaWhcD (1, 1, 3, 1), {B1, B2}},
215
    {"br.call.dptk.many",       B, OpPaWhcD (1, 1, 5, 0), {B1, B2}},
216
    {"br.call.dptk.many.clr",   B, OpPaWhcD (1, 1, 5, 1), {B1, B2}},
217
    {"br.call.dpnt.many",       B, OpPaWhcD (1, 1, 7, 0), {B1, B2}},
218
    {"br.call.dpnt.many.clr",   B, OpPaWhcD (1, 1, 7, 1), {B1, B2}},
219
 
220
#define BRP(a,b,c) \
221
      B0, OpX6IhWhb (2, a, b, c), {B2, TAG13}, NO_PRED
222
    {"brp.sptk",                BRP (0x10, 0, 0)},
223
    {"brp.dptk",                BRP (0x10, 0, 2)},
224
    {"brp.sptk.imp",            BRP (0x10, 1, 0)},
225
    {"brp.dptk.imp",            BRP (0x10, 1, 2)},
226
    {"brp.ret.sptk",            BRP (0x11, 0, 0)},
227
    {"brp.ret.dptk",            BRP (0x11, 0, 2)},
228
    {"brp.ret.sptk.imp",        BRP (0x11, 1, 0)},
229
    {"brp.ret.dptk.imp",        BRP (0x11, 1, 2)},
230
#undef BRP
231
 
232
    {"nop.b",           B0, OpX6 (2, 0x00), {IMMU21}},
233
 
234
#define BR(a,b) \
235
      B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO
236
    {"br.few",          BR (0, 0)},
237
    {"br",              BR (0, 0)},
238
    {"br.few.clr",      BR (0, 1)},
239
    {"br.clr",          BR (0, 1)},
240
    {"br.many",         BR (1, 0)},
241
    {"br.many.clr",     BR (1, 1)},
242
#undef BR
243
 
244
#define BR(a,b,c) \
245
      B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}
246
    {"br.cond.sptk.few",        BR (0, 0, 0)},
247
    {"br.cond.sptk",            BR (0, 0, 0), PSEUDO},
248
    {"br.cond.sptk.few.clr",    BR (0, 0, 1)},
249
    {"br.cond.sptk.clr",        BR (0, 0, 1), PSEUDO},
250
    {"br.cond.spnt.few",        BR (0, 1, 0)},
251
    {"br.cond.spnt",            BR (0, 1, 0), PSEUDO},
252
    {"br.cond.spnt.few.clr",    BR (0, 1, 1)},
253
    {"br.cond.spnt.clr",        BR (0, 1, 1), PSEUDO},
254
    {"br.cond.dptk.few",        BR (0, 2, 0)},
255
    {"br.cond.dptk",            BR (0, 2, 0), PSEUDO},
256
    {"br.cond.dptk.few.clr",    BR (0, 2, 1)},
257
    {"br.cond.dptk.clr",        BR (0, 2, 1), PSEUDO},
258
    {"br.cond.dpnt.few",        BR (0, 3, 0)},
259
    {"br.cond.dpnt",            BR (0, 3, 0), PSEUDO},
260
    {"br.cond.dpnt.few.clr",    BR (0, 3, 1)},
261
    {"br.cond.dpnt.clr",        BR (0, 3, 1), PSEUDO},
262
    {"br.cond.sptk.many",       BR (1, 0, 0)},
263
    {"br.cond.sptk.many.clr",   BR (1, 0, 1)},
264
    {"br.cond.spnt.many",       BR (1, 1, 0)},
265
    {"br.cond.spnt.many.clr",   BR (1, 1, 1)},
266
    {"br.cond.dptk.many",       BR (1, 2, 0)},
267
    {"br.cond.dptk.many.clr",   BR (1, 2, 1)},
268
    {"br.cond.dpnt.many",       BR (1, 3, 0)},
269
    {"br.cond.dpnt.many.clr",   BR (1, 3, 1)},
270
    {"br.sptk.few",             BR (0, 0, 0)},
271
    {"br.sptk",                 BR (0, 0, 0), PSEUDO},
272
    {"br.sptk.few.clr",         BR (0, 0, 1)},
273
    {"br.sptk.clr",             BR (0, 0, 1), PSEUDO},
274
    {"br.spnt.few",             BR (0, 1, 0)},
275
    {"br.spnt",                 BR (0, 1, 0), PSEUDO},
276
    {"br.spnt.few.clr",         BR (0, 1, 1)},
277
    {"br.spnt.clr",             BR (0, 1, 1), PSEUDO},
278
    {"br.dptk.few",             BR (0, 2, 0)},
279
    {"br.dptk",                 BR (0, 2, 0), PSEUDO},
280
    {"br.dptk.few.clr",         BR (0, 2, 1)},
281
    {"br.dptk.clr",             BR (0, 2, 1), PSEUDO},
282
    {"br.dpnt.few",             BR (0, 3, 0)},
283
    {"br.dpnt",                 BR (0, 3, 0), PSEUDO},
284
    {"br.dpnt.few.clr",         BR (0, 3, 1)},
285
    {"br.dpnt.clr",             BR (0, 3, 1), PSEUDO},
286
    {"br.sptk.many",            BR (1, 0, 0)},
287
    {"br.sptk.many.clr",        BR (1, 0, 1)},
288
    {"br.spnt.many",            BR (1, 1, 0)},
289
    {"br.spnt.many.clr",        BR (1, 1, 1)},
290
    {"br.dptk.many",            BR (1, 2, 0)},
291
    {"br.dptk.many.clr",        BR (1, 2, 1)},
292
    {"br.dpnt.many",            BR (1, 3, 0)},
293
    {"br.dpnt.many.clr",        BR (1, 3, 1)},
294
#undef BR
295
 
296
#define BR(a,b,c,d) \
297
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2
298
    {"br.wexit.sptk.few",       BR (2, 0, 0, 0) | MOD_RRBS},
299
    {"br.wexit.sptk",           BR (2, 0, 0, 0) | PSEUDO | MOD_RRBS},
300
    {"br.wexit.sptk.few.clr",   BR (2, 0, 0, 1) | MOD_RRBS},
301
    {"br.wexit.sptk.clr",       BR (2, 0, 0, 1) | PSEUDO | MOD_RRBS},
302
    {"br.wexit.spnt.few",       BR (2, 0, 1, 0) | MOD_RRBS},
303
    {"br.wexit.spnt",           BR (2, 0, 1, 0) | PSEUDO | MOD_RRBS},
304
    {"br.wexit.spnt.few.clr",   BR (2, 0, 1, 1) | MOD_RRBS},
305
    {"br.wexit.spnt.clr",       BR (2, 0, 1, 1) | PSEUDO | MOD_RRBS},
306
    {"br.wexit.dptk.few",       BR (2, 0, 2, 0) | MOD_RRBS},
307
    {"br.wexit.dptk",           BR (2, 0, 2, 0) | PSEUDO | MOD_RRBS},
308
    {"br.wexit.dptk.few.clr",   BR (2, 0, 2, 1) | MOD_RRBS},
309
    {"br.wexit.dptk.clr",       BR (2, 0, 2, 1) | PSEUDO | MOD_RRBS},
310
    {"br.wexit.dpnt.few",       BR (2, 0, 3, 0) | MOD_RRBS},
311
    {"br.wexit.dpnt",           BR (2, 0, 3, 0) | PSEUDO | MOD_RRBS},
312
    {"br.wexit.dpnt.few.clr",   BR (2, 0, 3, 1) | MOD_RRBS},
313
    {"br.wexit.dpnt.clr",       BR (2, 0, 3, 1) | PSEUDO | MOD_RRBS},
314
    {"br.wexit.sptk.many",      BR (2, 1, 0, 0) | MOD_RRBS},
315
    {"br.wexit.sptk.many.clr",  BR (2, 1, 0, 1) | MOD_RRBS},
316
    {"br.wexit.spnt.many",      BR (2, 1, 1, 0) | MOD_RRBS},
317
    {"br.wexit.spnt.many.clr",  BR (2, 1, 1, 1) | MOD_RRBS},
318
    {"br.wexit.dptk.many",      BR (2, 1, 2, 0) | MOD_RRBS},
319
    {"br.wexit.dptk.many.clr",  BR (2, 1, 2, 1) | MOD_RRBS},
320
    {"br.wexit.dpnt.many",      BR (2, 1, 3, 0) | MOD_RRBS},
321
    {"br.wexit.dpnt.many.clr",  BR (2, 1, 3, 1) | MOD_RRBS},
322
    {"br.wtop.sptk.few",        BR (3, 0, 0, 0) | MOD_RRBS},
323
    {"br.wtop.sptk",            BR (3, 0, 0, 0) | PSEUDO | MOD_RRBS},
324
    {"br.wtop.sptk.few.clr",    BR (3, 0, 0, 1) | MOD_RRBS},
325
    {"br.wtop.sptk.clr",        BR (3, 0, 0, 1) | PSEUDO | MOD_RRBS},
326
    {"br.wtop.spnt.few",        BR (3, 0, 1, 0) | MOD_RRBS},
327
    {"br.wtop.spnt",            BR (3, 0, 1, 0) | PSEUDO | MOD_RRBS},
328
    {"br.wtop.spnt.few.clr",    BR (3, 0, 1, 1) | MOD_RRBS},
329
    {"br.wtop.spnt.clr",        BR (3, 0, 1, 1) | PSEUDO | MOD_RRBS},
330
    {"br.wtop.dptk.few",        BR (3, 0, 2, 0) | MOD_RRBS},
331
    {"br.wtop.dptk",            BR (3, 0, 2, 0) | PSEUDO | MOD_RRBS},
332
    {"br.wtop.dptk.few.clr",    BR (3, 0, 2, 1) | MOD_RRBS},
333
    {"br.wtop.dptk.clr",        BR (3, 0, 2, 1) | PSEUDO | MOD_RRBS},
334
    {"br.wtop.dpnt.few",        BR (3, 0, 3, 0) | MOD_RRBS},
335
    {"br.wtop.dpnt",            BR (3, 0, 3, 0) | PSEUDO | MOD_RRBS},
336
    {"br.wtop.dpnt.few.clr",    BR (3, 0, 3, 1) | MOD_RRBS},
337
    {"br.wtop.dpnt.clr",        BR (3, 0, 3, 1) | PSEUDO | MOD_RRBS},
338
    {"br.wtop.sptk.many",       BR (3, 1, 0, 0) | MOD_RRBS},
339
    {"br.wtop.sptk.many.clr",   BR (3, 1, 0, 1) | MOD_RRBS},
340
    {"br.wtop.spnt.many",       BR (3, 1, 1, 0) | MOD_RRBS},
341
    {"br.wtop.spnt.many.clr",   BR (3, 1, 1, 1) | MOD_RRBS},
342
    {"br.wtop.dptk.many",       BR (3, 1, 2, 0) | MOD_RRBS},
343
    {"br.wtop.dptk.many.clr",   BR (3, 1, 2, 1) | MOD_RRBS},
344
    {"br.wtop.dpnt.many",       BR (3, 1, 3, 0) | MOD_RRBS},
345
    {"br.wtop.dpnt.many.clr",   BR (3, 1, 3, 1) | MOD_RRBS},
346
 
347
#undef BR
348
#define BR(a,b,c,d) \
349
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED
350
    {"br.cloop.sptk.few",       BR (5, 0, 0, 0)},
351
    {"br.cloop.sptk",           BR (5, 0, 0, 0) | PSEUDO},
352
    {"br.cloop.sptk.few.clr",   BR (5, 0, 0, 1)},
353
    {"br.cloop.sptk.clr",       BR (5, 0, 0, 1) | PSEUDO},
354
    {"br.cloop.spnt.few",       BR (5, 0, 1, 0)},
355
    {"br.cloop.spnt",           BR (5, 0, 1, 0) | PSEUDO},
356
    {"br.cloop.spnt.few.clr",   BR (5, 0, 1, 1)},
357
    {"br.cloop.spnt.clr",       BR (5, 0, 1, 1) | PSEUDO},
358
    {"br.cloop.dptk.few",       BR (5, 0, 2, 0)},
359
    {"br.cloop.dptk",           BR (5, 0, 2, 0) | PSEUDO},
360
    {"br.cloop.dptk.few.clr",   BR (5, 0, 2, 1)},
361
    {"br.cloop.dptk.clr",       BR (5, 0, 2, 1) | PSEUDO},
362
    {"br.cloop.dpnt.few",       BR (5, 0, 3, 0)},
363
    {"br.cloop.dpnt",           BR (5, 0, 3, 0) | PSEUDO},
364
    {"br.cloop.dpnt.few.clr",   BR (5, 0, 3, 1)},
365
    {"br.cloop.dpnt.clr",       BR (5, 0, 3, 1) | PSEUDO},
366
    {"br.cloop.sptk.many",      BR (5, 1, 0, 0)},
367
    {"br.cloop.sptk.many.clr",  BR (5, 1, 0, 1)},
368
    {"br.cloop.spnt.many",      BR (5, 1, 1, 0)},
369
    {"br.cloop.spnt.many.clr",  BR (5, 1, 1, 1)},
370
    {"br.cloop.dptk.many",      BR (5, 1, 2, 0)},
371
    {"br.cloop.dptk.many.clr",  BR (5, 1, 2, 1)},
372
    {"br.cloop.dpnt.many",      BR (5, 1, 3, 0)},
373
    {"br.cloop.dpnt.many.clr",  BR (5, 1, 3, 1)},
374
    {"br.cexit.sptk.few",       BR (6, 0, 0, 0) | MOD_RRBS},
375
    {"br.cexit.sptk",           BR (6, 0, 0, 0) | PSEUDO | MOD_RRBS},
376
    {"br.cexit.sptk.few.clr",   BR (6, 0, 0, 1) | MOD_RRBS},
377
    {"br.cexit.sptk.clr",       BR (6, 0, 0, 1) | PSEUDO | MOD_RRBS},
378
    {"br.cexit.spnt.few",       BR (6, 0, 1, 0) | MOD_RRBS},
379
    {"br.cexit.spnt",           BR (6, 0, 1, 0) | PSEUDO | MOD_RRBS},
380
    {"br.cexit.spnt.few.clr",   BR (6, 0, 1, 1) | MOD_RRBS},
381
    {"br.cexit.spnt.clr",       BR (6, 0, 1, 1) | PSEUDO | MOD_RRBS},
382
    {"br.cexit.dptk.few",       BR (6, 0, 2, 0) | MOD_RRBS},
383
    {"br.cexit.dptk",           BR (6, 0, 2, 0) | PSEUDO | MOD_RRBS},
384
    {"br.cexit.dptk.few.clr",   BR (6, 0, 2, 1) | MOD_RRBS},
385
    {"br.cexit.dptk.clr",       BR (6, 0, 2, 1) | PSEUDO | MOD_RRBS},
386
    {"br.cexit.dpnt.few",       BR (6, 0, 3, 0) | MOD_RRBS},
387
    {"br.cexit.dpnt",           BR (6, 0, 3, 0) | PSEUDO | MOD_RRBS},
388
    {"br.cexit.dpnt.few.clr",   BR (6, 0, 3, 1) | MOD_RRBS},
389
    {"br.cexit.dpnt.clr",       BR (6, 0, 3, 1) | PSEUDO | MOD_RRBS},
390
    {"br.cexit.sptk.many",      BR (6, 1, 0, 0) | MOD_RRBS},
391
    {"br.cexit.sptk.many.clr",  BR (6, 1, 0, 1) | MOD_RRBS},
392
    {"br.cexit.spnt.many",      BR (6, 1, 1, 0) | MOD_RRBS},
393
    {"br.cexit.spnt.many.clr",  BR (6, 1, 1, 1) | MOD_RRBS},
394
    {"br.cexit.dptk.many",      BR (6, 1, 2, 0) | MOD_RRBS},
395
    {"br.cexit.dptk.many.clr",  BR (6, 1, 2, 1) | MOD_RRBS},
396
    {"br.cexit.dpnt.many",      BR (6, 1, 3, 0) | MOD_RRBS},
397
    {"br.cexit.dpnt.many.clr",  BR (6, 1, 3, 1) | MOD_RRBS},
398
    {"br.ctop.sptk.few",        BR (7, 0, 0, 0) | MOD_RRBS},
399
    {"br.ctop.sptk",            BR (7, 0, 0, 0) | PSEUDO | MOD_RRBS},
400
    {"br.ctop.sptk.few.clr",    BR (7, 0, 0, 1) | MOD_RRBS},
401
    {"br.ctop.sptk.clr",        BR (7, 0, 0, 1) | PSEUDO | MOD_RRBS},
402
    {"br.ctop.spnt.few",        BR (7, 0, 1, 0) | MOD_RRBS},
403
    {"br.ctop.spnt",            BR (7, 0, 1, 0) | PSEUDO | MOD_RRBS},
404
    {"br.ctop.spnt.few.clr",    BR (7, 0, 1, 1) | MOD_RRBS},
405
    {"br.ctop.spnt.clr",        BR (7, 0, 1, 1) | PSEUDO | MOD_RRBS},
406
    {"br.ctop.dptk.few",        BR (7, 0, 2, 0) | MOD_RRBS},
407
    {"br.ctop.dptk",            BR (7, 0, 2, 0) | PSEUDO | MOD_RRBS},
408
    {"br.ctop.dptk.few.clr",    BR (7, 0, 2, 1) | MOD_RRBS},
409
    {"br.ctop.dptk.clr",        BR (7, 0, 2, 1) | PSEUDO | MOD_RRBS},
410
    {"br.ctop.dpnt.few",        BR (7, 0, 3, 0) | MOD_RRBS},
411
    {"br.ctop.dpnt",            BR (7, 0, 3, 0) | PSEUDO | MOD_RRBS},
412
    {"br.ctop.dpnt.few.clr",    BR (7, 0, 3, 1) | MOD_RRBS},
413
    {"br.ctop.dpnt.clr",        BR (7, 0, 3, 1) | PSEUDO | MOD_RRBS},
414
    {"br.ctop.sptk.many",       BR (7, 1, 0, 0) | MOD_RRBS},
415
    {"br.ctop.sptk.many.clr",   BR (7, 1, 0, 1) | MOD_RRBS},
416
    {"br.ctop.spnt.many",       BR (7, 1, 1, 0) | MOD_RRBS},
417
    {"br.ctop.spnt.many.clr",   BR (7, 1, 1, 1) | MOD_RRBS},
418
    {"br.ctop.dptk.many",       BR (7, 1, 2, 0) | MOD_RRBS},
419
    {"br.ctop.dptk.many.clr",   BR (7, 1, 2, 1) | MOD_RRBS},
420
    {"br.ctop.dpnt.many",       BR (7, 1, 3, 0) | MOD_RRBS},
421
    {"br.ctop.dpnt.many.clr",   BR (7, 1, 3, 1) | MOD_RRBS},
422
 
423
#undef BR
424
#define BR(a,b,c,d) \
425
        B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2
426
    {"br.call.sptk.few",        B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}},
427
    {"br.call.sptk",            B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, PSEUDO},
428
    {"br.call.sptk.few.clr",    B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}},
429
    {"br.call.sptk.clr",        B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, PSEUDO},
430
    {"br.call.spnt.few",        B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}},
431
    {"br.call.spnt",            B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, PSEUDO},
432
    {"br.call.spnt.few.clr",    B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}},
433
    {"br.call.spnt.clr",        B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, PSEUDO},
434
    {"br.call.dptk.few",        B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}},
435
    {"br.call.dptk",            B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, PSEUDO},
436
    {"br.call.dptk.few.clr",    B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}},
437
    {"br.call.dptk.clr",        B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, PSEUDO},
438
    {"br.call.dpnt.few",        B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}},
439
    {"br.call.dpnt",            B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, PSEUDO},
440
    {"br.call.dpnt.few.clr",    B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}},
441
    {"br.call.dpnt.clr",        B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, PSEUDO},
442
    {"br.call.sptk.many",       B, OpPaWhaD (5, 1, 0, 0), {B1, TGT25c}},
443
    {"br.call.sptk.many.clr",   B, OpPaWhaD (5, 1, 0, 1), {B1, TGT25c}},
444
    {"br.call.spnt.many",       B, OpPaWhaD (5, 1, 1, 0), {B1, TGT25c}},
445
    {"br.call.spnt.many.clr",   B, OpPaWhaD (5, 1, 1, 1), {B1, TGT25c}},
446
    {"br.call.dptk.many",       B, OpPaWhaD (5, 1, 2, 0), {B1, TGT25c}},
447
    {"br.call.dptk.many.clr",   B, OpPaWhaD (5, 1, 2, 1), {B1, TGT25c}},
448
    {"br.call.dpnt.many",       B, OpPaWhaD (5, 1, 3, 0), {B1, TGT25c}},
449
    {"br.call.dpnt.many.clr",   B, OpPaWhaD (5, 1, 3, 1), {B1, TGT25c}},
450
#undef BR
451
 
452
    /* branch predict */
453
#define BRP(a,b) \
454
      B0, OpIhWhb (7, a, b), {TGT25c, TAG13}, NO_PRED
455
    {"brp.sptk",                BRP (0, 0)},
456
    {"brp.loop",                BRP (0, 1)},
457
    {"brp.dptk",                BRP (0, 2)},
458
    {"brp.exit",                BRP (0, 3)},
459
    {"brp.sptk.imp",            BRP (1, 0)},
460
    {"brp.loop.imp",            BRP (1, 1)},
461
    {"brp.dptk.imp",            BRP (1, 2)},
462
    {"brp.exit.imp",            BRP (1, 3)},
463
#undef BRP
464
 
465
    {0}
466
  };
467
 
468
#undef B0
469
#undef B
470
#undef bBtype
471
#undef bD
472
#undef bIh
473
#undef bPa
474
#undef bPr
475
#undef bWha
476
#undef bWhb
477
#undef bWhc
478
#undef bX6
479
#undef mBtype
480
#undef mD
481
#undef mIh
482
#undef mPa
483
#undef mPr
484
#undef mWha
485
#undef mWhb
486
#undef mWhc
487
#undef mX6
488
#undef OpX6
489
#undef OpPaWhaD
490
#undef OpPaWhcD
491
#undef OpBtypePaWhaD
492
#undef OpBtypePaWhaDPr
493
#undef OpX6BtypePaWhaD
494
#undef OpX6BtypePaWhaDPr
495
#undef OpIhWhb
496
#undef OpX6IhWhb

powered by: WebSVN 2.1.0

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