This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / opcodes / ia64-opc-b.c
1 /* 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
This page took 0.053211 seconds and 5 git commands to generate.