184865Sobrien/* ia64-opc-b.c -- IA-64 `B' opcode table.
2218822Sdim   Copyright 1998, 1999, 2000, 2002, 2005, 2006
3218822Sdim   Free Software Foundation, Inc.
484865Sobrien   Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
584865Sobrien
684865Sobrien   This file is part of GDB, GAS, and the GNU binutils.
784865Sobrien
884865Sobrien   GDB, GAS, and the GNU binutils are free software; you can redistribute
984865Sobrien   them and/or modify them under the terms of the GNU General Public
1084865Sobrien   License as published by the Free Software Foundation; either version
1184865Sobrien   2, or (at your option) any later version.
1284865Sobrien
1384865Sobrien   GDB, GAS, and the GNU binutils are distributed in the hope that they
1484865Sobrien   will be useful, but WITHOUT ANY WARRANTY; without even the implied
1584865Sobrien   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
1684865Sobrien   the GNU General Public License for more details.
1784865Sobrien
1884865Sobrien   You should have received a copy of the GNU General Public License
1984865Sobrien   along with this file; see the file COPYING.  If not, write to the
20218822Sdim   Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21218822Sdim   02110-1301, USA.  */
2284865Sobrien
2384865Sobrien#include "ia64-opc.h"
2484865Sobrien
2584865Sobrien#define B0	IA64_TYPE_B, 0
2684865Sobrien#define B	IA64_TYPE_B, 1
2784865Sobrien
2884865Sobrien/* instruction bit fields: */
2984865Sobrien#define bBtype(x)	(((ia64_insn) ((x) & 0x7)) << 6)
3084865Sobrien#define bD(x)		(((ia64_insn) ((x) & 0x1)) << 35)
3184865Sobrien#define bIh(x)		(((ia64_insn) ((x) & 0x1)) << 35)
3284865Sobrien#define bPa(x)		(((ia64_insn) ((x) & 0x1)) << 12)
3384865Sobrien#define bPr(x)		(((ia64_insn) ((x) & 0x3f)) << 0)
3484865Sobrien#define bWha(x)		(((ia64_insn) ((x) & 0x3)) << 33)
3584865Sobrien#define bWhb(x)		(((ia64_insn) ((x) & 0x3)) << 3)
36104834Sobrien#define bWhc(x)		(((ia64_insn) ((x) & 0x7)) << 32)
3784865Sobrien#define bX6(x)		(((ia64_insn) ((x) & 0x3f)) << 27)
3884865Sobrien
3984865Sobrien#define mBtype		bBtype (-1)
4084865Sobrien#define mD		bD (-1)
4184865Sobrien#define mIh		bIh (-1)
4284865Sobrien#define mPa		bPa (-1)
4384865Sobrien#define mPr		bPr (-1)
4484865Sobrien#define mWha		bWha (-1)
4584865Sobrien#define mWhb		bWhb (-1)
46104834Sobrien#define mWhc		bWhc (-1)
4784865Sobrien#define mX6		bX6 (-1)
4884865Sobrien
4984865Sobrien#define OpX6(a,b) 	(bOp (a) | bX6 (b)), (mOp | mX6)
5084865Sobrien#define OpPaWhaD(a,b,c,d) \
5184865Sobrien	(bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD)
52104834Sobrien#define OpPaWhcD(a,b,c,d) \
53104834Sobrien	(bOp (a) | bPa (b) | bWhc (c) | bD (d)), (mOp | mPa | mWhc | mD)
5484865Sobrien#define OpBtypePaWhaD(a,b,c,d,e) \
5584865Sobrien	(bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e)), \
5684865Sobrien	(mOp | mBtype | mPa | mWha | mD)
5784865Sobrien#define OpBtypePaWhaDPr(a,b,c,d,e,f) \
5884865Sobrien	(bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e) | bPr (f)), \
5984865Sobrien	(mOp | mBtype | mPa | mWha | mD | mPr)
6084865Sobrien#define OpX6BtypePaWhaD(a,b,c,d,e,f) \
6184865Sobrien	(bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f)), \
6284865Sobrien	(mOp | mX6 | mBtype | mPa | mWha | mD)
6384865Sobrien#define OpX6BtypePaWhaDPr(a,b,c,d,e,f,g) \
6484865Sobrien   (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f) | bPr (g)), \
6584865Sobrien	(mOp | mX6 | mBtype | mPa | mWha | mD | mPr)
6684865Sobrien#define OpIhWhb(a,b,c) \
6784865Sobrien	(bOp (a) | bIh (b) | bWhb (c)), \
6884865Sobrien	(mOp | mIh | mWhb)
6984865Sobrien#define OpX6IhWhb(a,b,c,d) \
7084865Sobrien	(bOp (a) | bX6 (b) | bIh (c) | bWhb (d)), \
7184865Sobrien	(mOp | mX6 | mIh | mWhb)
7284865Sobrien
73130561Sobrien/* Used to initialise unused fields in ia64_opcode struct,
74130561Sobrien   in order to stop gcc from complaining.  */
75130561Sobrien#define EMPTY 0,0,NULL
76130561Sobrien
7784865Sobrienstruct ia64_opcode ia64_opcodes_b[] =
7884865Sobrien  {
7984865Sobrien    /* B-type instruction encodings (sorted according to major opcode) */
8084865Sobrien
8184865Sobrien#define BR(a,b) \
82130561Sobrien      B0, OpX6BtypePaWhaDPr (0, 0x20, 0, a, 0, b, 0), {B2}, PSEUDO, 0, NULL
8384865Sobrien    {"br.few",		BR (0, 0)},
8484865Sobrien    {"br",		BR (0, 0)},
8584865Sobrien    {"br.few.clr",	BR (0, 1)},
8684865Sobrien    {"br.clr",		BR (0, 1)},
8784865Sobrien    {"br.many",		BR (1, 0)},
8884865Sobrien    {"br.many.clr",	BR (1, 1)},
8984865Sobrien#undef BR
9084865Sobrien
91130561Sobrien#define BR(a,b,c,d,e)	B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, EMPTY
92130561Sobrien#define BRP(a,b,c,d,e)	B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, PSEUDO, 0, NULL
93130561Sobrien#define BRT(a,b,c,d,e,f) B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, f, 0, NULL
9484865Sobrien    {"br.cond.sptk.few",	BR (0x20, 0, 0, 0, 0)},
95130561Sobrien    {"br.cond.sptk",		BRP (0x20, 0, 0, 0, 0)},
9684865Sobrien    {"br.cond.sptk.few.clr",	BR (0x20, 0, 0, 0, 1)},
97130561Sobrien    {"br.cond.sptk.clr",	BRP (0x20, 0, 0, 0, 1)},
9884865Sobrien    {"br.cond.spnt.few",	BR (0x20, 0, 0, 1, 0)},
99130561Sobrien    {"br.cond.spnt",		BRP (0x20, 0, 0, 1, 0)},
10084865Sobrien    {"br.cond.spnt.few.clr",	BR (0x20, 0, 0, 1, 1)},
101130561Sobrien    {"br.cond.spnt.clr",	BRP (0x20, 0, 0, 1, 1)},
10284865Sobrien    {"br.cond.dptk.few",	BR (0x20, 0, 0, 2, 0)},
103130561Sobrien    {"br.cond.dptk",		BRP (0x20, 0, 0, 2, 0)},
10484865Sobrien    {"br.cond.dptk.few.clr",	BR (0x20, 0, 0, 2, 1)},
105130561Sobrien    {"br.cond.dptk.clr",	BRP (0x20, 0, 0, 2, 1)},
10684865Sobrien    {"br.cond.dpnt.few",	BR (0x20, 0, 0, 3, 0)},
107130561Sobrien    {"br.cond.dpnt",		BRP (0x20, 0, 0, 3, 0)},
10884865Sobrien    {"br.cond.dpnt.few.clr",	BR (0x20, 0, 0, 3, 1)},
109130561Sobrien    {"br.cond.dpnt.clr",	BRP (0x20, 0, 0, 3, 1)},
11084865Sobrien    {"br.cond.sptk.many",	BR (0x20, 0, 1, 0, 0)},
11184865Sobrien    {"br.cond.sptk.many.clr",	BR (0x20, 0, 1, 0, 1)},
11284865Sobrien    {"br.cond.spnt.many",	BR (0x20, 0, 1, 1, 0)},
11384865Sobrien    {"br.cond.spnt.many.clr",	BR (0x20, 0, 1, 1, 1)},
11484865Sobrien    {"br.cond.dptk.many",	BR (0x20, 0, 1, 2, 0)},
11584865Sobrien    {"br.cond.dptk.many.clr",	BR (0x20, 0, 1, 2, 1)},
11684865Sobrien    {"br.cond.dpnt.many",	BR (0x20, 0, 1, 3, 0)},
11784865Sobrien    {"br.cond.dpnt.many.clr",	BR (0x20, 0, 1, 3, 1)},
11884865Sobrien    {"br.sptk.few",		BR (0x20, 0, 0, 0, 0)},
119130561Sobrien    {"br.sptk",			BRP (0x20, 0, 0, 0, 0)},
12084865Sobrien    {"br.sptk.few.clr",		BR (0x20, 0, 0, 0, 1)},
121130561Sobrien    {"br.sptk.clr",		BRP (0x20, 0, 0, 0, 1)},
12284865Sobrien    {"br.spnt.few",		BR (0x20, 0, 0, 1, 0)},
123130561Sobrien    {"br.spnt",			BRP (0x20, 0, 0, 1, 0)},
12484865Sobrien    {"br.spnt.few.clr",		BR (0x20, 0, 0, 1, 1)},
125130561Sobrien    {"br.spnt.clr",		BRP (0x20, 0, 0, 1, 1)},
12684865Sobrien    {"br.dptk.few",		BR (0x20, 0, 0, 2, 0)},
127130561Sobrien    {"br.dptk",			BRP (0x20, 0, 0, 2, 0)},
12884865Sobrien    {"br.dptk.few.clr",		BR (0x20, 0, 0, 2, 1)},
129130561Sobrien    {"br.dptk.clr",		BRP (0x20, 0, 0, 2, 1)},
13084865Sobrien    {"br.dpnt.few",		BR (0x20, 0, 0, 3, 0)},
131130561Sobrien    {"br.dpnt",			BRP (0x20, 0, 0, 3, 0)},
13284865Sobrien    {"br.dpnt.few.clr",		BR (0x20, 0, 0, 3, 1)},
133130561Sobrien    {"br.dpnt.clr",		BRP (0x20, 0, 0, 3, 1)},
13484865Sobrien    {"br.sptk.many",		BR (0x20, 0, 1, 0, 0)},
13584865Sobrien    {"br.sptk.many.clr",	BR (0x20, 0, 1, 0, 1)},
13684865Sobrien    {"br.spnt.many",		BR (0x20, 0, 1, 1, 0)},
13784865Sobrien    {"br.spnt.many.clr",	BR (0x20, 0, 1, 1, 1)},
13884865Sobrien    {"br.dptk.many",		BR (0x20, 0, 1, 2, 0)},
13984865Sobrien    {"br.dptk.many.clr",	BR (0x20, 0, 1, 2, 1)},
14084865Sobrien    {"br.dpnt.many",		BR (0x20, 0, 1, 3, 0)},
14184865Sobrien    {"br.dpnt.many.clr",	BR (0x20, 0, 1, 3, 1)},
14284865Sobrien    {"br.ia.sptk.few",		BR (0x20, 1, 0, 0, 0)},
143130561Sobrien    {"br.ia.sptk",		BRP (0x20, 1, 0, 0, 0)},
14484865Sobrien    {"br.ia.sptk.few.clr",	BR (0x20, 1, 0, 0, 1)},
145130561Sobrien    {"br.ia.sptk.clr",		BRP (0x20, 1, 0, 0, 1)},
14684865Sobrien    {"br.ia.spnt.few",		BR (0x20, 1, 0, 1, 0)},
147130561Sobrien    {"br.ia.spnt",		BRP (0x20, 1, 0, 1, 0)},
14884865Sobrien    {"br.ia.spnt.few.clr",	BR (0x20, 1, 0, 1, 1)},
149130561Sobrien    {"br.ia.spnt.clr",		BRP (0x20, 1, 0, 1, 1)},
15084865Sobrien    {"br.ia.dptk.few",		BR (0x20, 1, 0, 2, 0)},
151130561Sobrien    {"br.ia.dptk",		BRP (0x20, 1, 0, 2, 0)},
15284865Sobrien    {"br.ia.dptk.few.clr",	BR (0x20, 1, 0, 2, 1)},
153130561Sobrien    {"br.ia.dptk.clr",		BRP (0x20, 1, 0, 2, 1)},
15484865Sobrien    {"br.ia.dpnt.few",		BR (0x20, 1, 0, 3, 0)},
155130561Sobrien    {"br.ia.dpnt",		BRP (0x20, 1, 0, 3, 0)},
15684865Sobrien    {"br.ia.dpnt.few.clr",	BR (0x20, 1, 0, 3, 1)},
157130561Sobrien    {"br.ia.dpnt.clr",		BRP (0x20, 1, 0, 3, 1)},
15884865Sobrien    {"br.ia.sptk.many",		BR (0x20, 1, 1, 0, 0)},
15984865Sobrien    {"br.ia.sptk.many.clr",	BR (0x20, 1, 1, 0, 1)},
16084865Sobrien    {"br.ia.spnt.many",		BR (0x20, 1, 1, 1, 0)},
16184865Sobrien    {"br.ia.spnt.many.clr",	BR (0x20, 1, 1, 1, 1)},
16284865Sobrien    {"br.ia.dptk.many",		BR (0x20, 1, 1, 2, 0)},
16384865Sobrien    {"br.ia.dptk.many.clr",	BR (0x20, 1, 1, 2, 1)},
16484865Sobrien    {"br.ia.dpnt.many",		BR (0x20, 1, 1, 3, 0)},
16584865Sobrien    {"br.ia.dpnt.many.clr",	BR (0x20, 1, 1, 3, 1)},
166130561Sobrien    {"br.ret.sptk.few",		BRT (0x21, 4, 0, 0, 0, MOD_RRBS)},
167130561Sobrien    {"br.ret.sptk",		BRT (0x21, 4, 0, 0, 0, PSEUDO | MOD_RRBS)},
168130561Sobrien    {"br.ret.sptk.few.clr",	BRT (0x21, 4, 0, 0, 1, MOD_RRBS)},
169130561Sobrien    {"br.ret.sptk.clr",		BRT (0x21, 4, 0, 0, 1, PSEUDO | MOD_RRBS)},
170130561Sobrien    {"br.ret.spnt.few",		BRT (0x21, 4, 0, 1, 0, MOD_RRBS)},
171130561Sobrien    {"br.ret.spnt",		BRT (0x21, 4, 0, 1, 0, PSEUDO | MOD_RRBS)},
172130561Sobrien    {"br.ret.spnt.few.clr",	BRT (0x21, 4, 0, 1, 1, MOD_RRBS)},
173130561Sobrien    {"br.ret.spnt.clr",		BRT (0x21, 4, 0, 1, 1, PSEUDO | MOD_RRBS)},
174130561Sobrien    {"br.ret.dptk.few",		BRT (0x21, 4, 0, 2, 0, MOD_RRBS)},
175130561Sobrien    {"br.ret.dptk",		BRT (0x21, 4, 0, 2, 0, PSEUDO | MOD_RRBS)},
176130561Sobrien    {"br.ret.dptk.few.clr",	BRT (0x21, 4, 0, 2, 1, MOD_RRBS)},
177130561Sobrien    {"br.ret.dptk.clr",		BRT (0x21, 4, 0, 2, 1, PSEUDO | MOD_RRBS)},
178130561Sobrien    {"br.ret.dpnt.few",		BRT (0x21, 4, 0, 3, 0, MOD_RRBS)},
179130561Sobrien    {"br.ret.dpnt",		BRT (0x21, 4, 0, 3, 0, PSEUDO | MOD_RRBS)},
180130561Sobrien    {"br.ret.dpnt.few.clr",	BRT (0x21, 4, 0, 3, 1, MOD_RRBS)},
181130561Sobrien    {"br.ret.dpnt.clr",		BRT (0x21, 4, 0, 3, 1, PSEUDO | MOD_RRBS)},
182130561Sobrien    {"br.ret.sptk.many",	BRT (0x21, 4, 1, 0, 0, MOD_RRBS)},
183130561Sobrien    {"br.ret.sptk.many.clr",	BRT (0x21, 4, 1, 0, 1, MOD_RRBS)},
184130561Sobrien    {"br.ret.spnt.many",	BRT (0x21, 4, 1, 1, 0, MOD_RRBS)},
185130561Sobrien    {"br.ret.spnt.many.clr",	BRT (0x21, 4, 1, 1, 1, MOD_RRBS)},
186130561Sobrien    {"br.ret.dptk.many",	BRT (0x21, 4, 1, 2, 0, MOD_RRBS)},
187130561Sobrien    {"br.ret.dptk.many.clr",	BRT (0x21, 4, 1, 2, 1, MOD_RRBS)},
188130561Sobrien    {"br.ret.dpnt.many",	BRT (0x21, 4, 1, 3, 0, MOD_RRBS)},
189130561Sobrien    {"br.ret.dpnt.many.clr",	BRT (0x21, 4, 1, 3, 1, MOD_RRBS)},
19084865Sobrien#undef BR
191130561Sobrien#undef BRP
192130561Sobrien#undef BRT
19384865Sobrien
194130561Sobrien    {"cover",		B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
195130561Sobrien    {"clrrrb",		B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
196130561Sobrien    {"clrrrb.pr",	B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
197130561Sobrien    {"rfi",		B0, OpX6 (0, 0x08), {0, }, NO_PRED | LAST | PRIV | MOD_RRBS, 0, NULL},
198130561Sobrien    {"bsw.0",		B0, OpX6 (0, 0x0c), {0, }, NO_PRED | LAST | PRIV, 0, NULL},
199130561Sobrien    {"bsw.1",		B0, OpX6 (0, 0x0d), {0, }, NO_PRED | LAST | PRIV, 0, NULL},
200130561Sobrien    {"epc",		B0, OpX6 (0, 0x10), {0, }, NO_PRED, 0, NULL},
201218822Sdim    {"vmsw.0",		B0, OpX6 (0, 0x18), {0, }, NO_PRED | PRIV, 0, NULL},
202218822Sdim    {"vmsw.1",		B0, OpX6 (0, 0x19), {0, }, NO_PRED | PRIV, 0, NULL},
20384865Sobrien
204130561Sobrien    {"break.b",		B0, OpX6 (0, 0x00), {IMMU21}, EMPTY},
20584865Sobrien
206130561Sobrien    {"br.call.sptk.few",	B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, EMPTY},
207130561Sobrien    {"br.call.sptk",		B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, PSEUDO, 0, NULL},
208130561Sobrien    {"br.call.sptk.few.clr",	B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, EMPTY},
209130561Sobrien    {"br.call.sptk.clr",	B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, PSEUDO, 0, NULL},
210130561Sobrien    {"br.call.spnt.few",	B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, EMPTY},
211130561Sobrien    {"br.call.spnt",		B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, PSEUDO, 0, NULL},
212130561Sobrien    {"br.call.spnt.few.clr",	B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, EMPTY},
213130561Sobrien    {"br.call.spnt.clr",	B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, PSEUDO, 0, NULL},
214130561Sobrien    {"br.call.dptk.few",	B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, EMPTY},
215130561Sobrien    {"br.call.dptk",		B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, PSEUDO, 0, NULL},
216130561Sobrien    {"br.call.dptk.few.clr",	B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, EMPTY},
217130561Sobrien    {"br.call.dptk.clr",	B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, PSEUDO, 0, NULL},
218130561Sobrien    {"br.call.dpnt.few",	B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, EMPTY},
219130561Sobrien    {"br.call.dpnt",		B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, PSEUDO, 0, NULL},
220130561Sobrien    {"br.call.dpnt.few.clr",	B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, EMPTY},
221130561Sobrien    {"br.call.dpnt.clr",	B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, PSEUDO, 0, NULL},
222130561Sobrien    {"br.call.sptk.many",	B, OpPaWhcD (1, 1, 1, 0), {B1, B2}, EMPTY},
223130561Sobrien    {"br.call.sptk.many.clr",	B, OpPaWhcD (1, 1, 1, 1), {B1, B2}, EMPTY},
224130561Sobrien    {"br.call.spnt.many",	B, OpPaWhcD (1, 1, 3, 0), {B1, B2}, EMPTY},
225130561Sobrien    {"br.call.spnt.many.clr",	B, OpPaWhcD (1, 1, 3, 1), {B1, B2}, EMPTY},
226130561Sobrien    {"br.call.dptk.many",	B, OpPaWhcD (1, 1, 5, 0), {B1, B2}, EMPTY},
227130561Sobrien    {"br.call.dptk.many.clr",	B, OpPaWhcD (1, 1, 5, 1), {B1, B2}, EMPTY},
228130561Sobrien    {"br.call.dpnt.many",	B, OpPaWhcD (1, 1, 7, 0), {B1, B2}, EMPTY},
229130561Sobrien    {"br.call.dpnt.many.clr",	B, OpPaWhcD (1, 1, 7, 1), {B1, B2}, EMPTY},
23084865Sobrien
23184865Sobrien#define BRP(a,b,c) \
232130561Sobrien      B0, OpX6IhWhb (2, a, b, c), {B2, TAG13}, NO_PRED, 0, NULL
23384865Sobrien    {"brp.sptk",		BRP (0x10, 0, 0)},
23484865Sobrien    {"brp.dptk",		BRP (0x10, 0, 2)},
23584865Sobrien    {"brp.sptk.imp",		BRP (0x10, 1, 0)},
23684865Sobrien    {"brp.dptk.imp",		BRP (0x10, 1, 2)},
23784865Sobrien    {"brp.ret.sptk",		BRP (0x11, 0, 0)},
23884865Sobrien    {"brp.ret.dptk",		BRP (0x11, 0, 2)},
23984865Sobrien    {"brp.ret.sptk.imp",	BRP (0x11, 1, 0)},
24084865Sobrien    {"brp.ret.dptk.imp",	BRP (0x11, 1, 2)},
24184865Sobrien#undef BRP
24284865Sobrien
243130561Sobrien    {"nop.b",		B0, OpX6 (2, 0x00), {IMMU21}, EMPTY},
244130561Sobrien    {"hint.b",		B0, OpX6 (2, 0x01), {IMMU21}, EMPTY},
24584865Sobrien
24684865Sobrien#define BR(a,b) \
247130561Sobrien      B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO, 0, NULL
24884865Sobrien    {"br.few",		BR (0, 0)},
24984865Sobrien    {"br",		BR (0, 0)},
25084865Sobrien    {"br.few.clr",	BR (0, 1)},
25184865Sobrien    {"br.clr",		BR (0, 1)},
25284865Sobrien    {"br.many",		BR (1, 0)},
25384865Sobrien    {"br.many.clr",	BR (1, 1)},
25484865Sobrien#undef BR
25584865Sobrien
25684865Sobrien#define BR(a,b,c) \
257130561Sobrien      B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}, EMPTY
258130561Sobrien#define BRP(a,b,c) \
259130561Sobrien      B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}, PSEUDO, 0, NULL
26084865Sobrien    {"br.cond.sptk.few",	BR (0, 0, 0)},
261130561Sobrien    {"br.cond.sptk",		BRP (0, 0, 0)},
26284865Sobrien    {"br.cond.sptk.few.clr",	BR (0, 0, 1)},
263130561Sobrien    {"br.cond.sptk.clr",	BRP (0, 0, 1)},
26484865Sobrien    {"br.cond.spnt.few",	BR (0, 1, 0)},
265130561Sobrien    {"br.cond.spnt",		BRP (0, 1, 0)},
26684865Sobrien    {"br.cond.spnt.few.clr",	BR (0, 1, 1)},
267130561Sobrien    {"br.cond.spnt.clr",	BRP (0, 1, 1)},
26884865Sobrien    {"br.cond.dptk.few",	BR (0, 2, 0)},
269130561Sobrien    {"br.cond.dptk",		BRP (0, 2, 0)},
27084865Sobrien    {"br.cond.dptk.few.clr",	BR (0, 2, 1)},
271130561Sobrien    {"br.cond.dptk.clr",	BRP (0, 2, 1)},
27284865Sobrien    {"br.cond.dpnt.few",	BR (0, 3, 0)},
273130561Sobrien    {"br.cond.dpnt",		BRP (0, 3, 0)},
27484865Sobrien    {"br.cond.dpnt.few.clr",	BR (0, 3, 1)},
275130561Sobrien    {"br.cond.dpnt.clr",	BRP (0, 3, 1)},
27684865Sobrien    {"br.cond.sptk.many",	BR (1, 0, 0)},
27784865Sobrien    {"br.cond.sptk.many.clr",	BR (1, 0, 1)},
27884865Sobrien    {"br.cond.spnt.many",	BR (1, 1, 0)},
27984865Sobrien    {"br.cond.spnt.many.clr",	BR (1, 1, 1)},
28084865Sobrien    {"br.cond.dptk.many",	BR (1, 2, 0)},
28184865Sobrien    {"br.cond.dptk.many.clr",	BR (1, 2, 1)},
28284865Sobrien    {"br.cond.dpnt.many",	BR (1, 3, 0)},
28384865Sobrien    {"br.cond.dpnt.many.clr",	BR (1, 3, 1)},
28484865Sobrien    {"br.sptk.few",		BR (0, 0, 0)},
285130561Sobrien    {"br.sptk",			BRP (0, 0, 0)},
28684865Sobrien    {"br.sptk.few.clr",		BR (0, 0, 1)},
287130561Sobrien    {"br.sptk.clr",		BRP (0, 0, 1)},
28884865Sobrien    {"br.spnt.few",		BR (0, 1, 0)},
289130561Sobrien    {"br.spnt",			BRP (0, 1, 0)},
29084865Sobrien    {"br.spnt.few.clr",		BR (0, 1, 1)},
291130561Sobrien    {"br.spnt.clr",		BRP (0, 1, 1)},
29284865Sobrien    {"br.dptk.few",		BR (0, 2, 0)},
293130561Sobrien    {"br.dptk",			BRP (0, 2, 0)},
29484865Sobrien    {"br.dptk.few.clr",		BR (0, 2, 1)},
295130561Sobrien    {"br.dptk.clr",		BRP (0, 2, 1)},
29684865Sobrien    {"br.dpnt.few",		BR (0, 3, 0)},
297130561Sobrien    {"br.dpnt",			BRP (0, 3, 0)},
29884865Sobrien    {"br.dpnt.few.clr",		BR (0, 3, 1)},
299130561Sobrien    {"br.dpnt.clr",		BRP (0, 3, 1)},
30084865Sobrien    {"br.sptk.many",		BR (1, 0, 0)},
30184865Sobrien    {"br.sptk.many.clr",	BR (1, 0, 1)},
30284865Sobrien    {"br.spnt.many",		BR (1, 1, 0)},
30384865Sobrien    {"br.spnt.many.clr",	BR (1, 1, 1)},
30484865Sobrien    {"br.dptk.many",		BR (1, 2, 0)},
30584865Sobrien    {"br.dptk.many.clr",	BR (1, 2, 1)},
30684865Sobrien    {"br.dpnt.many",		BR (1, 3, 0)},
30784865Sobrien    {"br.dpnt.many.clr",	BR (1, 3, 1)},
30884865Sobrien#undef BR
309130561Sobrien#undef BRP
31084865Sobrien
311130561Sobrien#define BR(a,b,c,d, e) \
312130561Sobrien	B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | e, 0, NULL
313130561Sobrien    {"br.wexit.sptk.few",	BR (2, 0, 0, 0, MOD_RRBS)},
314130561Sobrien    {"br.wexit.sptk",		BR (2, 0, 0, 0, PSEUDO | MOD_RRBS)},
315130561Sobrien    {"br.wexit.sptk.few.clr",	BR (2, 0, 0, 1, MOD_RRBS)},
316130561Sobrien    {"br.wexit.sptk.clr",	BR (2, 0, 0, 1, PSEUDO | MOD_RRBS)},
317130561Sobrien    {"br.wexit.spnt.few",	BR (2, 0, 1, 0, MOD_RRBS)},
318130561Sobrien    {"br.wexit.spnt",		BR (2, 0, 1, 0, PSEUDO | MOD_RRBS)},
319130561Sobrien    {"br.wexit.spnt.few.clr",	BR (2, 0, 1, 1, MOD_RRBS)},
320130561Sobrien    {"br.wexit.spnt.clr",	BR (2, 0, 1, 1, PSEUDO | MOD_RRBS)},
321130561Sobrien    {"br.wexit.dptk.few",	BR (2, 0, 2, 0, MOD_RRBS)},
322130561Sobrien    {"br.wexit.dptk",		BR (2, 0, 2, 0, PSEUDO | MOD_RRBS)},
323130561Sobrien    {"br.wexit.dptk.few.clr",	BR (2, 0, 2, 1, MOD_RRBS)},
324130561Sobrien    {"br.wexit.dptk.clr",	BR (2, 0, 2, 1, PSEUDO | MOD_RRBS)},
325130561Sobrien    {"br.wexit.dpnt.few",	BR (2, 0, 3, 0, MOD_RRBS)},
326130561Sobrien    {"br.wexit.dpnt",		BR (2, 0, 3, 0, PSEUDO | MOD_RRBS)},
327130561Sobrien    {"br.wexit.dpnt.few.clr",	BR (2, 0, 3, 1, MOD_RRBS)},
328130561Sobrien    {"br.wexit.dpnt.clr",	BR (2, 0, 3, 1, PSEUDO | MOD_RRBS)},
329130561Sobrien    {"br.wexit.sptk.many",	BR (2, 1, 0, 0, MOD_RRBS)},
330130561Sobrien    {"br.wexit.sptk.many.clr",	BR (2, 1, 0, 1, MOD_RRBS)},
331130561Sobrien    {"br.wexit.spnt.many",	BR (2, 1, 1, 0, MOD_RRBS)},
332130561Sobrien    {"br.wexit.spnt.many.clr",	BR (2, 1, 1, 1, MOD_RRBS)},
333130561Sobrien    {"br.wexit.dptk.many",	BR (2, 1, 2, 0, MOD_RRBS)},
334130561Sobrien    {"br.wexit.dptk.many.clr",	BR (2, 1, 2, 1, MOD_RRBS)},
335130561Sobrien    {"br.wexit.dpnt.many",	BR (2, 1, 3, 0, MOD_RRBS)},
336130561Sobrien    {"br.wexit.dpnt.many.clr",	BR (2, 1, 3, 1, MOD_RRBS)},
337130561Sobrien    {"br.wtop.sptk.few",	BR (3, 0, 0, 0, MOD_RRBS)},
338130561Sobrien    {"br.wtop.sptk",		BR (3, 0, 0, 0, PSEUDO | MOD_RRBS)},
339130561Sobrien    {"br.wtop.sptk.few.clr",	BR (3, 0, 0, 1, MOD_RRBS)},
340130561Sobrien    {"br.wtop.sptk.clr",	BR (3, 0, 0, 1, PSEUDO | MOD_RRBS)},
341130561Sobrien    {"br.wtop.spnt.few",	BR (3, 0, 1, 0, MOD_RRBS)},
342130561Sobrien    {"br.wtop.spnt",		BR (3, 0, 1, 0, PSEUDO | MOD_RRBS)},
343130561Sobrien    {"br.wtop.spnt.few.clr",	BR (3, 0, 1, 1, MOD_RRBS)},
344130561Sobrien    {"br.wtop.spnt.clr",	BR (3, 0, 1, 1, PSEUDO | MOD_RRBS)},
345130561Sobrien    {"br.wtop.dptk.few",	BR (3, 0, 2, 0, MOD_RRBS)},
346130561Sobrien    {"br.wtop.dptk",		BR (3, 0, 2, 0, PSEUDO | MOD_RRBS)},
347130561Sobrien    {"br.wtop.dptk.few.clr",	BR (3, 0, 2, 1, MOD_RRBS)},
348130561Sobrien    {"br.wtop.dptk.clr",	BR (3, 0, 2, 1, PSEUDO | MOD_RRBS)},
349130561Sobrien    {"br.wtop.dpnt.few",	BR (3, 0, 3, 0, MOD_RRBS)},
350130561Sobrien    {"br.wtop.dpnt",		BR (3, 0, 3, 0, PSEUDO | MOD_RRBS)},
351130561Sobrien    {"br.wtop.dpnt.few.clr",	BR (3, 0, 3, 1, MOD_RRBS)},
352130561Sobrien    {"br.wtop.dpnt.clr",	BR (3, 0, 3, 1, PSEUDO | MOD_RRBS)},
353130561Sobrien    {"br.wtop.sptk.many",	BR (3, 1, 0, 0, MOD_RRBS)},
354130561Sobrien    {"br.wtop.sptk.many.clr",	BR (3, 1, 0, 1, MOD_RRBS)},
355130561Sobrien    {"br.wtop.spnt.many",	BR (3, 1, 1, 0, MOD_RRBS)},
356130561Sobrien    {"br.wtop.spnt.many.clr",	BR (3, 1, 1, 1, MOD_RRBS)},
357130561Sobrien    {"br.wtop.dptk.many",	BR (3, 1, 2, 0, MOD_RRBS)},
358130561Sobrien    {"br.wtop.dptk.many.clr",	BR (3, 1, 2, 1, MOD_RRBS)},
359130561Sobrien    {"br.wtop.dpnt.many",	BR (3, 1, 3, 0, MOD_RRBS)},
360130561Sobrien    {"br.wtop.dpnt.many.clr",	BR (3, 1, 3, 1, MOD_RRBS)},
36184865Sobrien
36284865Sobrien#undef BR
36384865Sobrien#define BR(a,b,c,d) \
364130561Sobrien	B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED, 0, NULL
365130561Sobrien#define BRT(a,b,c,d,e) \
366130561Sobrien	B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED | e, 0, NULL
36784865Sobrien    {"br.cloop.sptk.few",	BR (5, 0, 0, 0)},
368130561Sobrien    {"br.cloop.sptk",		BRT (5, 0, 0, 0, PSEUDO)},
36984865Sobrien    {"br.cloop.sptk.few.clr",	BR (5, 0, 0, 1)},
370130561Sobrien    {"br.cloop.sptk.clr",	BRT (5, 0, 0, 1, PSEUDO)},
37184865Sobrien    {"br.cloop.spnt.few",	BR (5, 0, 1, 0)},
372130561Sobrien    {"br.cloop.spnt",		BRT (5, 0, 1, 0, PSEUDO)},
37384865Sobrien    {"br.cloop.spnt.few.clr",	BR (5, 0, 1, 1)},
374130561Sobrien    {"br.cloop.spnt.clr",	BRT (5, 0, 1, 1, PSEUDO)},
37584865Sobrien    {"br.cloop.dptk.few",	BR (5, 0, 2, 0)},
376130561Sobrien    {"br.cloop.dptk",		BRT (5, 0, 2, 0, PSEUDO)},
37784865Sobrien    {"br.cloop.dptk.few.clr",	BR (5, 0, 2, 1)},
378130561Sobrien    {"br.cloop.dptk.clr",	BRT (5, 0, 2, 1, PSEUDO)},
37984865Sobrien    {"br.cloop.dpnt.few",	BR (5, 0, 3, 0)},
380130561Sobrien    {"br.cloop.dpnt",		BRT (5, 0, 3, 0, PSEUDO)},
38184865Sobrien    {"br.cloop.dpnt.few.clr",	BR (5, 0, 3, 1)},
382130561Sobrien    {"br.cloop.dpnt.clr",	BRT (5, 0, 3, 1, PSEUDO)},
38384865Sobrien    {"br.cloop.sptk.many",	BR (5, 1, 0, 0)},
38484865Sobrien    {"br.cloop.sptk.many.clr",	BR (5, 1, 0, 1)},
38584865Sobrien    {"br.cloop.spnt.many",	BR (5, 1, 1, 0)},
38684865Sobrien    {"br.cloop.spnt.many.clr",	BR (5, 1, 1, 1)},
38784865Sobrien    {"br.cloop.dptk.many",	BR (5, 1, 2, 0)},
38884865Sobrien    {"br.cloop.dptk.many.clr",	BR (5, 1, 2, 1)},
38984865Sobrien    {"br.cloop.dpnt.many",	BR (5, 1, 3, 0)},
39084865Sobrien    {"br.cloop.dpnt.many.clr",	BR (5, 1, 3, 1)},
391130561Sobrien    {"br.cexit.sptk.few",	BRT (6, 0, 0, 0, MOD_RRBS)},
392130561Sobrien    {"br.cexit.sptk",		BRT (6, 0, 0, 0, PSEUDO | MOD_RRBS)},
393130561Sobrien    {"br.cexit.sptk.few.clr",	BRT (6, 0, 0, 1, MOD_RRBS)},
394130561Sobrien    {"br.cexit.sptk.clr",	BRT (6, 0, 0, 1, PSEUDO | MOD_RRBS)},
395130561Sobrien    {"br.cexit.spnt.few",	BRT (6, 0, 1, 0, MOD_RRBS)},
396130561Sobrien    {"br.cexit.spnt",		BRT (6, 0, 1, 0, PSEUDO | MOD_RRBS)},
397130561Sobrien    {"br.cexit.spnt.few.clr",	BRT (6, 0, 1, 1, MOD_RRBS)},
398130561Sobrien    {"br.cexit.spnt.clr",	BRT (6, 0, 1, 1, PSEUDO | MOD_RRBS)},
399130561Sobrien    {"br.cexit.dptk.few",	BRT (6, 0, 2, 0, MOD_RRBS)},
400130561Sobrien    {"br.cexit.dptk",		BRT (6, 0, 2, 0, PSEUDO | MOD_RRBS)},
401130561Sobrien    {"br.cexit.dptk.few.clr",	BRT (6, 0, 2, 1, MOD_RRBS)},
402130561Sobrien    {"br.cexit.dptk.clr",	BRT (6, 0, 2, 1, PSEUDO | MOD_RRBS)},
403130561Sobrien    {"br.cexit.dpnt.few",	BRT (6, 0, 3, 0, MOD_RRBS)},
404130561Sobrien    {"br.cexit.dpnt",		BRT (6, 0, 3, 0, PSEUDO | MOD_RRBS)},
405130561Sobrien    {"br.cexit.dpnt.few.clr",	BRT (6, 0, 3, 1, MOD_RRBS)},
406130561Sobrien    {"br.cexit.dpnt.clr",	BRT (6, 0, 3, 1, PSEUDO | MOD_RRBS)},
407130561Sobrien    {"br.cexit.sptk.many",	BRT (6, 1, 0, 0, MOD_RRBS)},
408130561Sobrien    {"br.cexit.sptk.many.clr",	BRT (6, 1, 0, 1, MOD_RRBS)},
409130561Sobrien    {"br.cexit.spnt.many",	BRT (6, 1, 1, 0, MOD_RRBS)},
410130561Sobrien    {"br.cexit.spnt.many.clr",	BRT (6, 1, 1, 1, MOD_RRBS)},
411130561Sobrien    {"br.cexit.dptk.many",	BRT (6, 1, 2, 0, MOD_RRBS)},
412130561Sobrien    {"br.cexit.dptk.many.clr",	BRT (6, 1, 2, 1, MOD_RRBS)},
413130561Sobrien    {"br.cexit.dpnt.many",	BRT (6, 1, 3, 0, MOD_RRBS)},
414130561Sobrien    {"br.cexit.dpnt.many.clr",	BRT (6, 1, 3, 1, MOD_RRBS)},
415130561Sobrien    {"br.ctop.sptk.few",	BRT (7, 0, 0, 0, MOD_RRBS)},
416130561Sobrien    {"br.ctop.sptk",		BRT (7, 0, 0, 0, PSEUDO | MOD_RRBS)},
417130561Sobrien    {"br.ctop.sptk.few.clr",	BRT (7, 0, 0, 1, MOD_RRBS)},
418130561Sobrien    {"br.ctop.sptk.clr",	BRT (7, 0, 0, 1, PSEUDO | MOD_RRBS)},
419130561Sobrien    {"br.ctop.spnt.few",	BRT (7, 0, 1, 0, MOD_RRBS)},
420130561Sobrien    {"br.ctop.spnt",		BRT (7, 0, 1, 0, PSEUDO | MOD_RRBS)},
421130561Sobrien    {"br.ctop.spnt.few.clr",	BRT (7, 0, 1, 1, MOD_RRBS)},
422130561Sobrien    {"br.ctop.spnt.clr",	BRT (7, 0, 1, 1, PSEUDO | MOD_RRBS)},
423130561Sobrien    {"br.ctop.dptk.few",	BRT (7, 0, 2, 0, MOD_RRBS)},
424130561Sobrien    {"br.ctop.dptk",		BRT (7, 0, 2, 0, PSEUDO | MOD_RRBS)},
425130561Sobrien    {"br.ctop.dptk.few.clr",	BRT (7, 0, 2, 1, MOD_RRBS)},
426130561Sobrien    {"br.ctop.dptk.clr",	BRT (7, 0, 2, 1, PSEUDO | MOD_RRBS)},
427130561Sobrien    {"br.ctop.dpnt.few",	BRT (7, 0, 3, 0, MOD_RRBS)},
428130561Sobrien    {"br.ctop.dpnt",		BRT (7, 0, 3, 0, PSEUDO | MOD_RRBS)},
429130561Sobrien    {"br.ctop.dpnt.few.clr",	BRT (7, 0, 3, 1, MOD_RRBS)},
430130561Sobrien    {"br.ctop.dpnt.clr",	BRT (7, 0, 3, 1, PSEUDO | MOD_RRBS)},
431130561Sobrien    {"br.ctop.sptk.many",	BRT (7, 1, 0, 0, MOD_RRBS)},
432130561Sobrien    {"br.ctop.sptk.many.clr",	BRT (7, 1, 0, 1, MOD_RRBS)},
433130561Sobrien    {"br.ctop.spnt.many",	BRT (7, 1, 1, 0, MOD_RRBS)},
434130561Sobrien    {"br.ctop.spnt.many.clr",	BRT (7, 1, 1, 1, MOD_RRBS)},
435130561Sobrien    {"br.ctop.dptk.many",	BRT (7, 1, 2, 0, MOD_RRBS)},
436130561Sobrien    {"br.ctop.dptk.many.clr",	BRT (7, 1, 2, 1, MOD_RRBS)},
437130561Sobrien    {"br.ctop.dpnt.many",	BRT (7, 1, 3, 0, MOD_RRBS)},
438130561Sobrien    {"br.ctop.dpnt.many.clr",	BRT (7, 1, 3, 1, MOD_RRBS)},
43984865Sobrien#undef BR
440130561Sobrien#undef BRT
44184865Sobrien
442130561Sobrien    {"br.call.sptk.few",	B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, EMPTY},
443130561Sobrien    {"br.call.sptk",		B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
444130561Sobrien    {"br.call.sptk.few.clr",	B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, EMPTY},
445130561Sobrien    {"br.call.sptk.clr",	B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
446130561Sobrien    {"br.call.spnt.few",	B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, EMPTY},
447130561Sobrien    {"br.call.spnt",		B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
448130561Sobrien    {"br.call.spnt.few.clr",	B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, EMPTY},
449130561Sobrien    {"br.call.spnt.clr",	B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
450130561Sobrien    {"br.call.dptk.few",	B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, EMPTY},
451130561Sobrien    {"br.call.dptk",		B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
452130561Sobrien    {"br.call.dptk.few.clr",	B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, EMPTY},
453130561Sobrien    {"br.call.dptk.clr",	B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
454130561Sobrien    {"br.call.dpnt.few",	B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, EMPTY},
455130561Sobrien    {"br.call.dpnt",		B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
456130561Sobrien    {"br.call.dpnt.few.clr",	B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, EMPTY},
457130561Sobrien    {"br.call.dpnt.clr",	B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
458130561Sobrien    {"br.call.sptk.many",	B, OpPaWhaD (5, 1, 0, 0), {B1, TGT25c}, EMPTY},
459130561Sobrien    {"br.call.sptk.many.clr",	B, OpPaWhaD (5, 1, 0, 1), {B1, TGT25c}, EMPTY},
460130561Sobrien    {"br.call.spnt.many",	B, OpPaWhaD (5, 1, 1, 0), {B1, TGT25c}, EMPTY},
461130561Sobrien    {"br.call.spnt.many.clr",	B, OpPaWhaD (5, 1, 1, 1), {B1, TGT25c}, EMPTY},
462130561Sobrien    {"br.call.dptk.many",	B, OpPaWhaD (5, 1, 2, 0), {B1, TGT25c}, EMPTY},
463130561Sobrien    {"br.call.dptk.many.clr",	B, OpPaWhaD (5, 1, 2, 1), {B1, TGT25c}, EMPTY},
464130561Sobrien    {"br.call.dpnt.many",	B, OpPaWhaD (5, 1, 3, 0), {B1, TGT25c}, EMPTY},
465130561Sobrien    {"br.call.dpnt.many.clr",	B, OpPaWhaD (5, 1, 3, 1), {B1, TGT25c}, EMPTY},
466130561Sobrien
467130561Sobrien    /* Branch predict.  */
46884865Sobrien#define BRP(a,b) \
469130561Sobrien      B0, OpIhWhb (7, a, b), {TGT25c, TAG13}, NO_PRED, 0, NULL
47084865Sobrien    {"brp.sptk",		BRP (0, 0)},
47184865Sobrien    {"brp.loop",		BRP (0, 1)},
47284865Sobrien    {"brp.dptk",		BRP (0, 2)},
47384865Sobrien    {"brp.exit",		BRP (0, 3)},
47484865Sobrien    {"brp.sptk.imp",		BRP (1, 0)},
47584865Sobrien    {"brp.loop.imp",		BRP (1, 1)},
47684865Sobrien    {"brp.dptk.imp",		BRP (1, 2)},
47784865Sobrien    {"brp.exit.imp",		BRP (1, 3)},
47884865Sobrien#undef BRP
47984865Sobrien
480130561Sobrien    {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL}
48184865Sobrien  };
48284865Sobrien
48384865Sobrien#undef B0
48484865Sobrien#undef B
48584865Sobrien#undef bBtype
48684865Sobrien#undef bD
48784865Sobrien#undef bIh
48884865Sobrien#undef bPa
48984865Sobrien#undef bPr
49084865Sobrien#undef bWha
49184865Sobrien#undef bWhb
492104834Sobrien#undef bWhc
49384865Sobrien#undef bX6
49484865Sobrien#undef mBtype
49584865Sobrien#undef mD
49684865Sobrien#undef mIh
49784865Sobrien#undef mPa
49884865Sobrien#undef mPr
49984865Sobrien#undef mWha
50084865Sobrien#undef mWhb
501104834Sobrien#undef mWhc
50284865Sobrien#undef mX6
50384865Sobrien#undef OpX6
50484865Sobrien#undef OpPaWhaD
505104834Sobrien#undef OpPaWhcD
50684865Sobrien#undef OpBtypePaWhaD
50784865Sobrien#undef OpBtypePaWhaDPr
50884865Sobrien#undef OpX6BtypePaWhaD
50984865Sobrien#undef OpX6BtypePaWhaDPr
51084865Sobrien#undef OpIhWhb
51184865Sobrien#undef OpX6IhWhb
512130561Sobrien#undef EMPTY
513