ia64-opc-b.c revision 104834
117683Spst/* ia64-opc-b.c -- IA-64 `B' opcode table. 239291Sfenner Copyright 1998, 1999, 2000 Free Software Foundation, Inc. 317683Spst Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 417683Spst 517683Spst This file is part of GDB, GAS, and the GNU binutils. 617683Spst 717683Spst GDB, GAS, and the GNU binutils are free software; you can redistribute 817683Spst them and/or modify them under the terms of the GNU General Public 917683Spst License as published by the Free Software Foundation; either version 1017683Spst 2, or (at your option) any later version. 1117683Spst 1217683Spst GDB, GAS, and the GNU binutils are distributed in the hope that they 1317683Spst will be useful, but WITHOUT ANY WARRANTY; without even the implied 1417683Spst warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 1517683Spst the GNU General Public License for more details. 1617683Spst 1717683Spst You should have received a copy of the GNU General Public License 1817683Spst along with this file; see the file COPYING. If not, write to the 1917683Spst Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2017683Spst 02111-1307, USA. */ 2117683Spst 2217683Spst#include "ia64-opc.h" 2317683Spst 2417683Spst#define B0 IA64_TYPE_B, 0 2517683Spst#define B IA64_TYPE_B, 1 26127664Sbms 2717683Spst/* instruction bit fields: */ 2817683Spst#define bBtype(x) (((ia64_insn) ((x) & 0x7)) << 6) 2917683Spst#define bD(x) (((ia64_insn) ((x) & 0x1)) << 35) 3017683Spst#define bIh(x) (((ia64_insn) ((x) & 0x1)) << 35) 3117683Spst#define bPa(x) (((ia64_insn) ((x) & 0x1)) << 12) 3217683Spst#define bPr(x) (((ia64_insn) ((x) & 0x3f)) << 0) 3317683Spst#define bWha(x) (((ia64_insn) ((x) & 0x3)) << 33) 3417683Spst#define bWhb(x) (((ia64_insn) ((x) & 0x3)) << 3) 3517683Spst#define bWhc(x) (((ia64_insn) ((x) & 0x7)) << 32) 36127664Sbms#define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27) 3717683Spst 3817683Spst#define mBtype bBtype (-1) 3926175Sfenner#define mD bD (-1) 40127664Sbms#define mIh bIh (-1) 41127664Sbms#define mPa bPa (-1) 4226175Sfenner#define mPr bPr (-1) 4326175Sfenner#define mWha bWha (-1) 4475107Sfenner#define mWhb bWhb (-1) 4575107Sfenner#define mWhc bWhc (-1) 4675107Sfenner#define mX6 bX6 (-1) 4775107Sfenner 4817683Spst#define OpX6(a,b) (bOp (a) | bX6 (b)), (mOp | mX6) 4917683Spst#define OpPaWhaD(a,b,c,d) \ 5017683Spst (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD) 5117683Spst#define OpPaWhcD(a,b,c,d) \ 5217683Spst (bOp (a) | bPa (b) | bWhc (c) | bD (d)), (mOp | mPa | mWhc | mD) 5317683Spst#define OpBtypePaWhaD(a,b,c,d,e) \ 5417683Spst (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e)), \ 5517683Spst (mOp | mBtype | mPa | mWha | mD) 5617683Spst#define OpBtypePaWhaDPr(a,b,c,d,e,f) \ 5717683Spst (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e) | bPr (f)), \ 5817683Spst (mOp | mBtype | mPa | mWha | mD | mPr) 5917683Spst#define OpX6BtypePaWhaD(a,b,c,d,e,f) \ 6017683Spst (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f)), \ 6117683Spst (mOp | mX6 | mBtype | mPa | mWha | mD) 6217683Spst#define OpX6BtypePaWhaDPr(a,b,c,d,e,f,g) \ 6317683Spst (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f) | bPr (g)), \ 6417683Spst (mOp | mX6 | mBtype | mPa | mWha | mD | mPr) 6517683Spst#define OpIhWhb(a,b,c) \ 6617683Spst (bOp (a) | bIh (b) | bWhb (c)), \ 6717683Spst (mOp | mIh | mWhb) 6817683Spst#define OpX6IhWhb(a,b,c,d) \ 6917683Spst (bOp (a) | bX6 (b) | bIh (c) | bWhb (d)), \ 7017683Spst (mOp | mX6 | mIh | mWhb) 7117683Spst 7217683Spststruct ia64_opcode ia64_opcodes_b[] = 7317683Spst { 7417683Spst /* B-type instruction encodings (sorted according to major opcode) */ 7517683Spst 7617683Spst#define BR(a,b) \ 7717683Spst B0, OpX6BtypePaWhaDPr (0, 0x20, 0, a, 0, b, 0), {B2}, PSEUDO 7817683Spst {"br.few", BR (0, 0)}, 7917683Spst {"br", BR (0, 0)}, 8017683Spst {"br.few.clr", BR (0, 1)}, 8117683Spst {"br.clr", BR (0, 1)}, 8217683Spst {"br.many", BR (1, 0)}, 8317683Spst {"br.many.clr", BR (1, 1)}, 8417683Spst#undef BR 8517683Spst 8617683Spst#define BR(a,b,c,d,e) B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2} 8717683Spst {"br.cond.sptk.few", BR (0x20, 0, 0, 0, 0)}, 8817683Spst {"br.cond.sptk", BR (0x20, 0, 0, 0, 0), PSEUDO}, 8917683Spst {"br.cond.sptk.few.clr", BR (0x20, 0, 0, 0, 1)}, 9017683Spst {"br.cond.sptk.clr", BR (0x20, 0, 0, 0, 1), PSEUDO}, 9117683Spst {"br.cond.spnt.few", BR (0x20, 0, 0, 1, 0)}, 9298530Sfenner {"br.cond.spnt", BR (0x20, 0, 0, 1, 0), PSEUDO}, 9398530Sfenner {"br.cond.spnt.few.clr", BR (0x20, 0, 0, 1, 1)}, 9498530Sfenner {"br.cond.spnt.clr", BR (0x20, 0, 0, 1, 1), PSEUDO}, 9517683Spst {"br.cond.dptk.few", BR (0x20, 0, 0, 2, 0)}, 9617683Spst {"br.cond.dptk", BR (0x20, 0, 0, 2, 0), PSEUDO}, 9798530Sfenner {"br.cond.dptk.few.clr", BR (0x20, 0, 0, 2, 1)}, 9817683Spst {"br.cond.dptk.clr", BR (0x20, 0, 0, 2, 1), PSEUDO}, 9917683Spst {"br.cond.dpnt.few", BR (0x20, 0, 0, 3, 0)}, 10017683Spst {"br.cond.dpnt", BR (0x20, 0, 0, 3, 0), PSEUDO}, 101127664Sbms {"br.cond.dpnt.few.clr", BR (0x20, 0, 0, 3, 1)}, 102127664Sbms {"br.cond.dpnt.clr", BR (0x20, 0, 0, 3, 1), PSEUDO}, 103127664Sbms {"br.cond.sptk.many", BR (0x20, 0, 1, 0, 0)}, 104127664Sbms {"br.cond.sptk.many.clr", BR (0x20, 0, 1, 0, 1)}, 105127664Sbms {"br.cond.spnt.many", BR (0x20, 0, 1, 1, 0)}, 106127664Sbms {"br.cond.spnt.many.clr", BR (0x20, 0, 1, 1, 1)}, 107127664Sbms {"br.cond.dptk.many", BR (0x20, 0, 1, 2, 0)}, 108127664Sbms {"br.cond.dptk.many.clr", BR (0x20, 0, 1, 2, 1)}, 109127664Sbms {"br.cond.dpnt.many", BR (0x20, 0, 1, 3, 0)}, 110127664Sbms {"br.cond.dpnt.many.clr", BR (0x20, 0, 1, 3, 1)}, 111127664Sbms {"br.sptk.few", BR (0x20, 0, 0, 0, 0)}, 112127664Sbms {"br.sptk", BR (0x20, 0, 0, 0, 0), PSEUDO}, 113127664Sbms {"br.sptk.few.clr", BR (0x20, 0, 0, 0, 1)}, 114127664Sbms {"br.sptk.clr", BR (0x20, 0, 0, 0, 1), PSEUDO}, 115127664Sbms {"br.spnt.few", BR (0x20, 0, 0, 1, 0)}, 116127664Sbms {"br.spnt", BR (0x20, 0, 0, 1, 0), PSEUDO}, 117127664Sbms {"br.spnt.few.clr", BR (0x20, 0, 0, 1, 1)}, 118127664Sbms {"br.spnt.clr", BR (0x20, 0, 0, 1, 1), PSEUDO}, 119127664Sbms {"br.dptk.few", BR (0x20, 0, 0, 2, 0)}, 120127664Sbms {"br.dptk", BR (0x20, 0, 0, 2, 0), PSEUDO}, 121127664Sbms {"br.dptk.few.clr", BR (0x20, 0, 0, 2, 1)}, 122127664Sbms {"br.dptk.clr", BR (0x20, 0, 0, 2, 1), PSEUDO}, 123127664Sbms {"br.dpnt.few", BR (0x20, 0, 0, 3, 0)}, 124127664Sbms {"br.dpnt", BR (0x20, 0, 0, 3, 0), PSEUDO}, 125127664Sbms {"br.dpnt.few.clr", BR (0x20, 0, 0, 3, 1)}, 126127664Sbms {"br.dpnt.clr", BR (0x20, 0, 0, 3, 1), PSEUDO}, 127127664Sbms {"br.sptk.many", BR (0x20, 0, 1, 0, 0)}, 12817683Spst {"br.sptk.many.clr", BR (0x20, 0, 1, 0, 1)}, 12998530Sfenner {"br.spnt.many", BR (0x20, 0, 1, 1, 0)}, 13017683Spst {"br.spnt.many.clr", BR (0x20, 0, 1, 1, 1)}, 13117683Spst {"br.dptk.many", BR (0x20, 0, 1, 2, 0)}, 13217683Spst {"br.dptk.many.clr", BR (0x20, 0, 1, 2, 1)}, 13317683Spst {"br.dpnt.many", BR (0x20, 0, 1, 3, 0)}, 13417683Spst {"br.dpnt.many.clr", BR (0x20, 0, 1, 3, 1)}, 13517683Spst {"br.ia.sptk.few", BR (0x20, 1, 0, 0, 0)}, 13617683Spst {"br.ia.sptk", BR (0x20, 1, 0, 0, 0), PSEUDO}, 13798530Sfenner {"br.ia.sptk.few.clr", BR (0x20, 1, 0, 0, 1)}, 13898530Sfenner {"br.ia.sptk.clr", BR (0x20, 1, 0, 0, 1), PSEUDO}, 13917683Spst {"br.ia.spnt.few", BR (0x20, 1, 0, 1, 0)}, 14017683Spst {"br.ia.spnt", BR (0x20, 1, 0, 1, 0), PSEUDO}, 14117683Spst {"br.ia.spnt.few.clr", BR (0x20, 1, 0, 1, 1)}, 14217683Spst {"br.ia.spnt.clr", BR (0x20, 1, 0, 1, 1), PSEUDO}, 14317683Spst {"br.ia.dptk.few", BR (0x20, 1, 0, 2, 0)}, 14417683Spst {"br.ia.dptk", BR (0x20, 1, 0, 2, 0), PSEUDO}, 14517683Spst {"br.ia.dptk.few.clr", BR (0x20, 1, 0, 2, 1)}, 14617683Spst {"br.ia.dptk.clr", BR (0x20, 1, 0, 2, 1), PSEUDO}, 14717683Spst {"br.ia.dpnt.few", BR (0x20, 1, 0, 3, 0)}, 14817683Spst {"br.ia.dpnt", BR (0x20, 1, 0, 3, 0), PSEUDO}, 14917683Spst {"br.ia.dpnt.few.clr", BR (0x20, 1, 0, 3, 1)}, 15017683Spst {"br.ia.dpnt.clr", BR (0x20, 1, 0, 3, 1), PSEUDO}, 15117683Spst {"br.ia.sptk.many", BR (0x20, 1, 1, 0, 0)}, 15217683Spst {"br.ia.sptk.many.clr", BR (0x20, 1, 1, 0, 1)}, 15317683Spst {"br.ia.spnt.many", BR (0x20, 1, 1, 1, 0)}, 154127664Sbms {"br.ia.spnt.many.clr", BR (0x20, 1, 1, 1, 1)}, 155127664Sbms {"br.ia.dptk.many", BR (0x20, 1, 1, 2, 0)}, 15617683Spst {"br.ia.dptk.many.clr", BR (0x20, 1, 1, 2, 1)}, 15717683Spst {"br.ia.dpnt.many", BR (0x20, 1, 1, 3, 0)}, 15898530Sfenner {"br.ia.dpnt.many.clr", BR (0x20, 1, 1, 3, 1)}, 15998530Sfenner {"br.ret.sptk.few", BR (0x21, 4, 0, 0, 0), MOD_RRBS}, 16098530Sfenner {"br.ret.sptk", BR (0x21, 4, 0, 0, 0), PSEUDO | MOD_RRBS}, 16198530Sfenner {"br.ret.sptk.few.clr", BR (0x21, 4, 0, 0, 1), MOD_RRBS}, 16298530Sfenner {"br.ret.sptk.clr", BR (0x21, 4, 0, 0, 1), PSEUDO | MOD_RRBS}, 16398530Sfenner {"br.ret.spnt.few", BR (0x21, 4, 0, 1, 0), MOD_RRBS}, 16498530Sfenner {"br.ret.spnt", BR (0x21, 4, 0, 1, 0), PSEUDO | MOD_RRBS}, 16598530Sfenner {"br.ret.spnt.few.clr", BR (0x21, 4, 0, 1, 1), MOD_RRBS}, 16698530Sfenner {"br.ret.spnt.clr", BR (0x21, 4, 0, 1, 1), PSEUDO | MOD_RRBS}, 16798530Sfenner {"br.ret.dptk.few", BR (0x21, 4, 0, 2, 0), MOD_RRBS}, 16898530Sfenner {"br.ret.dptk", BR (0x21, 4, 0, 2, 0), PSEUDO | MOD_RRBS}, 16998530Sfenner {"br.ret.dptk.few.clr", BR (0x21, 4, 0, 2, 1), MOD_RRBS}, 17098530Sfenner {"br.ret.dptk.clr", BR (0x21, 4, 0, 2, 1), PSEUDO | MOD_RRBS}, 17198530Sfenner {"br.ret.dpnt.few", BR (0x21, 4, 0, 3, 0), MOD_RRBS}, 17298530Sfenner {"br.ret.dpnt", BR (0x21, 4, 0, 3, 0), PSEUDO | MOD_RRBS}, 17398530Sfenner {"br.ret.dpnt.few.clr", BR (0x21, 4, 0, 3, 1), MOD_RRBS}, 17498530Sfenner {"br.ret.dpnt.clr", BR (0x21, 4, 0, 3, 1), PSEUDO | MOD_RRBS}, 17517683Spst {"br.ret.sptk.many", BR (0x21, 4, 1, 0, 0), MOD_RRBS}, 17617683Spst {"br.ret.sptk.many.clr", BR (0x21, 4, 1, 0, 1), MOD_RRBS}, 17717683Spst {"br.ret.spnt.many", BR (0x21, 4, 1, 1, 0), MOD_RRBS}, 17817683Spst {"br.ret.spnt.many.clr", BR (0x21, 4, 1, 1, 1), MOD_RRBS}, 17917683Spst {"br.ret.dptk.many", BR (0x21, 4, 1, 2, 0), MOD_RRBS}, 18017683Spst {"br.ret.dptk.many.clr", BR (0x21, 4, 1, 2, 1), MOD_RRBS}, 18117683Spst {"br.ret.dpnt.many", BR (0x21, 4, 1, 3, 0), MOD_RRBS}, 18217683Spst {"br.ret.dpnt.many.clr", BR (0x21, 4, 1, 3, 1), MOD_RRBS}, 18317683Spst#undef BR 18417683Spst 18517683Spst {"cover", B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS}, 18617683Spst {"clrrrb", B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS}, 187127664Sbms {"clrrrb.pr", B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS}, 188127664Sbms {"rfi", B0, OpX6 (0, 0x08), {0, }, NO_PRED | LAST | PRIV | MOD_RRBS}, 18917683Spst {"bsw.0", B0, OpX6 (0, 0x0c), {0, }, NO_PRED | LAST | PRIV}, 19017683Spst {"bsw.1", B0, OpX6 (0, 0x0d), {0, }, NO_PRED | LAST | PRIV}, 19117683Spst {"epc", B0, OpX6 (0, 0x10), {0, }, NO_PRED}, 19217683Spst 19317683Spst {"break.b", B0, OpX6 (0, 0x00), {IMMU21}}, 19417683Spst 19517683Spst {"br.call.sptk.few", B, OpPaWhcD (1, 0, 1, 0), {B1, B2}}, 19617683Spst {"br.call.sptk", B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, PSEUDO}, 19717683Spst {"br.call.sptk.few.clr", B, OpPaWhcD (1, 0, 1, 1), {B1, B2}}, 19817683Spst {"br.call.sptk.clr", B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, PSEUDO}, 19917683Spst {"br.call.spnt.few", B, OpPaWhcD (1, 0, 3, 0), {B1, B2}}, 20017683Spst {"br.call.spnt", B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, PSEUDO}, 20117683Spst {"br.call.spnt.few.clr", B, OpPaWhcD (1, 0, 3, 1), {B1, B2}}, 20217683Spst {"br.call.spnt.clr", B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, PSEUDO}, 20317683Spst {"br.call.dptk.few", B, OpPaWhcD (1, 0, 5, 0), {B1, B2}}, 20417683Spst {"br.call.dptk", B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, PSEUDO}, 20517683Spst {"br.call.dptk.few.clr", B, OpPaWhcD (1, 0, 5, 1), {B1, B2}}, 20617683Spst {"br.call.dptk.clr", B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, PSEUDO}, 207127664Sbms {"br.call.dpnt.few", B, OpPaWhcD (1, 0, 7, 0), {B1, B2}}, 20817683Spst {"br.call.dpnt", B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, PSEUDO}, 20917683Spst {"br.call.dpnt.few.clr", B, OpPaWhcD (1, 0, 7, 1), {B1, B2}}, 210127664Sbms {"br.call.dpnt.clr", B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, PSEUDO}, 211127664Sbms {"br.call.sptk.many", B, OpPaWhcD (1, 1, 1, 0), {B1, B2}}, 212127664Sbms {"br.call.sptk.many.clr", B, OpPaWhcD (1, 1, 1, 1), {B1, B2}}, 213127664Sbms {"br.call.spnt.many", B, OpPaWhcD (1, 1, 3, 0), {B1, B2}}, 214127664Sbms {"br.call.spnt.many.clr", B, OpPaWhcD (1, 1, 3, 1), {B1, B2}}, 215127664Sbms {"br.call.dptk.many", B, OpPaWhcD (1, 1, 5, 0), {B1, B2}}, 216127664Sbms {"br.call.dptk.many.clr", B, OpPaWhcD (1, 1, 5, 1), {B1, B2}}, 217127664Sbms {"br.call.dpnt.many", B, OpPaWhcD (1, 1, 7, 0), {B1, B2}}, 218127664Sbms {"br.call.dpnt.many.clr", B, OpPaWhcD (1, 1, 7, 1), {B1, B2}}, 219127664Sbms 220127664Sbms#define BRP(a,b,c) \ 221127664Sbms B0, OpX6IhWhb (2, a, b, c), {B2, TAG13}, NO_PRED 222127664Sbms {"brp.sptk", BRP (0x10, 0, 0)}, 22317683Spst {"brp.dptk", BRP (0x10, 0, 2)}, 22417683Spst {"brp.sptk.imp", BRP (0x10, 1, 0)}, 22517683Spst {"brp.dptk.imp", BRP (0x10, 1, 2)}, 22617683Spst {"brp.ret.sptk", BRP (0x11, 0, 0)}, 22717683Spst {"brp.ret.dptk", BRP (0x11, 0, 2)}, 22817683Spst {"brp.ret.sptk.imp", BRP (0x11, 1, 0)}, 22975107Sfenner {"brp.ret.dptk.imp", BRP (0x11, 1, 2)}, 23075107Sfenner#undef BRP 23117683Spst 23217683Spst {"nop.b", B0, OpX6 (2, 0x00), {IMMU21}}, 23317683Spst 23417683Spst#define BR(a,b) \ 23517683Spst B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO 23617683Spst {"br.few", BR (0, 0)}, 23717683Spst {"br", BR (0, 0)}, 23817683Spst {"br.few.clr", BR (0, 1)}, 23917683Spst {"br.clr", BR (0, 1)}, 24017683Spst {"br.many", BR (1, 0)}, 24117683Spst {"br.many.clr", BR (1, 1)}, 24217683Spst#undef BR 24317683Spst 24417683Spst#define BR(a,b,c) \ 245127664Sbms B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c} 246127664Sbms {"br.cond.sptk.few", BR (0, 0, 0)}, 247127664Sbms {"br.cond.sptk", BR (0, 0, 0), PSEUDO}, 248127664Sbms {"br.cond.sptk.few.clr", BR (0, 0, 1)}, 249127664Sbms {"br.cond.sptk.clr", BR (0, 0, 1), PSEUDO}, 250127664Sbms {"br.cond.spnt.few", BR (0, 1, 0)}, 251127664Sbms {"br.cond.spnt", BR (0, 1, 0), PSEUDO}, 252127664Sbms {"br.cond.spnt.few.clr", BR (0, 1, 1)}, 253127664Sbms {"br.cond.spnt.clr", BR (0, 1, 1), PSEUDO}, 254127664Sbms {"br.cond.dptk.few", BR (0, 2, 0)}, 255127664Sbms {"br.cond.dptk", BR (0, 2, 0), PSEUDO}, 256127664Sbms {"br.cond.dptk.few.clr", BR (0, 2, 1)}, 257127664Sbms {"br.cond.dptk.clr", BR (0, 2, 1), PSEUDO}, 258127664Sbms {"br.cond.dpnt.few", BR (0, 3, 0)}, 259127664Sbms {"br.cond.dpnt", BR (0, 3, 0), PSEUDO}, 260127664Sbms {"br.cond.dpnt.few.clr", BR (0, 3, 1)}, 261127664Sbms {"br.cond.dpnt.clr", BR (0, 3, 1), PSEUDO}, 262127664Sbms {"br.cond.sptk.many", BR (1, 0, 0)}, 263127664Sbms {"br.cond.sptk.many.clr", BR (1, 0, 1)}, 26417683Spst {"br.cond.spnt.many", BR (1, 1, 0)}, 26517683Spst {"br.cond.spnt.many.clr", BR (1, 1, 1)}, 26617683Spst {"br.cond.dptk.many", BR (1, 2, 0)}, 26717683Spst {"br.cond.dptk.many.clr", BR (1, 2, 1)}, 26817683Spst {"br.cond.dpnt.many", BR (1, 3, 0)}, 26917683Spst {"br.cond.dpnt.many.clr", BR (1, 3, 1)}, 27017683Spst {"br.sptk.few", BR (0, 0, 0)}, 271127664Sbms {"br.sptk", BR (0, 0, 0), PSEUDO}, 27217683Spst {"br.sptk.few.clr", BR (0, 0, 1)}, 27317683Spst {"br.sptk.clr", BR (0, 0, 1), PSEUDO}, 27417683Spst {"br.spnt.few", BR (0, 1, 0)}, 27517683Spst {"br.spnt", BR (0, 1, 0), PSEUDO}, 27617683Spst {"br.spnt.few.clr", BR (0, 1, 1)}, 27717683Spst {"br.spnt.clr", BR (0, 1, 1), PSEUDO}, 27817683Spst {"br.dptk.few", BR (0, 2, 0)}, 27917683Spst {"br.dptk", BR (0, 2, 0), PSEUDO}, 28017683Spst {"br.dptk.few.clr", BR (0, 2, 1)}, 28117683Spst {"br.dptk.clr", BR (0, 2, 1), PSEUDO}, 28217683Spst {"br.dpnt.few", BR (0, 3, 0)}, 28317683Spst {"br.dpnt", BR (0, 3, 0), PSEUDO}, 28417683Spst {"br.dpnt.few.clr", BR (0, 3, 1)}, 285127664Sbms {"br.dpnt.clr", BR (0, 3, 1), PSEUDO}, 286127664Sbms {"br.sptk.many", BR (1, 0, 0)}, 28717683Spst {"br.sptk.many.clr", BR (1, 0, 1)}, 28817683Spst {"br.spnt.many", BR (1, 1, 0)}, 28917683Spst {"br.spnt.many.clr", BR (1, 1, 1)}, 29017683Spst {"br.dptk.many", BR (1, 2, 0)}, 29117683Spst {"br.dptk.many.clr", BR (1, 2, 1)}, 29217683Spst {"br.dpnt.many", BR (1, 3, 0)}, 29317683Spst {"br.dpnt.many.clr", BR (1, 3, 1)}, 29417683Spst#undef BR 29517683Spst 29617683Spst#define BR(a,b,c,d) \ 29717683Spst B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 29817683Spst {"br.wexit.sptk.few", BR (2, 0, 0, 0) | MOD_RRBS}, 29917683Spst {"br.wexit.sptk", BR (2, 0, 0, 0) | PSEUDO | MOD_RRBS}, 30017683Spst {"br.wexit.sptk.few.clr", BR (2, 0, 0, 1) | MOD_RRBS}, 30117683Spst {"br.wexit.sptk.clr", BR (2, 0, 0, 1) | PSEUDO | MOD_RRBS}, 30217683Spst {"br.wexit.spnt.few", BR (2, 0, 1, 0) | MOD_RRBS}, 30317683Spst {"br.wexit.spnt", BR (2, 0, 1, 0) | PSEUDO | MOD_RRBS}, 30417683Spst {"br.wexit.spnt.few.clr", BR (2, 0, 1, 1) | MOD_RRBS}, 30517683Spst {"br.wexit.spnt.clr", BR (2, 0, 1, 1) | PSEUDO | MOD_RRBS}, 30617683Spst {"br.wexit.dptk.few", BR (2, 0, 2, 0) | MOD_RRBS}, 30717683Spst {"br.wexit.dptk", BR (2, 0, 2, 0) | PSEUDO | MOD_RRBS}, 30817683Spst {"br.wexit.dptk.few.clr", BR (2, 0, 2, 1) | MOD_RRBS}, 309127664Sbms {"br.wexit.dptk.clr", BR (2, 0, 2, 1) | PSEUDO | MOD_RRBS}, 310127664Sbms {"br.wexit.dpnt.few", BR (2, 0, 3, 0) | MOD_RRBS}, 311127664Sbms {"br.wexit.dpnt", BR (2, 0, 3, 0) | PSEUDO | MOD_RRBS}, 312127664Sbms {"br.wexit.dpnt.few.clr", BR (2, 0, 3, 1) | MOD_RRBS}, 313127664Sbms {"br.wexit.dpnt.clr", BR (2, 0, 3, 1) | PSEUDO | MOD_RRBS}, 314127664Sbms {"br.wexit.sptk.many", BR (2, 1, 0, 0) | MOD_RRBS}, 315127664Sbms {"br.wexit.sptk.many.clr", BR (2, 1, 0, 1) | MOD_RRBS}, 316127664Sbms {"br.wexit.spnt.many", BR (2, 1, 1, 0) | MOD_RRBS}, 317127664Sbms {"br.wexit.spnt.many.clr", BR (2, 1, 1, 1) | MOD_RRBS}, 318127664Sbms {"br.wexit.dptk.many", BR (2, 1, 2, 0) | MOD_RRBS}, 319127664Sbms {"br.wexit.dptk.many.clr", BR (2, 1, 2, 1) | MOD_RRBS}, 320127664Sbms {"br.wexit.dpnt.many", BR (2, 1, 3, 0) | MOD_RRBS}, 321127664Sbms {"br.wexit.dpnt.many.clr", BR (2, 1, 3, 1) | MOD_RRBS}, 322127664Sbms {"br.wtop.sptk.few", BR (3, 0, 0, 0) | MOD_RRBS}, 323127664Sbms {"br.wtop.sptk", BR (3, 0, 0, 0) | PSEUDO | MOD_RRBS}, 324127664Sbms {"br.wtop.sptk.few.clr", BR (3, 0, 0, 1) | MOD_RRBS}, 325127664Sbms {"br.wtop.sptk.clr", BR (3, 0, 0, 1) | PSEUDO | MOD_RRBS}, 326127664Sbms {"br.wtop.spnt.few", BR (3, 0, 1, 0) | MOD_RRBS}, 327127664Sbms {"br.wtop.spnt", BR (3, 0, 1, 0) | PSEUDO | MOD_RRBS}, 328127664Sbms {"br.wtop.spnt.few.clr", BR (3, 0, 1, 1) | MOD_RRBS}, 329127664Sbms {"br.wtop.spnt.clr", BR (3, 0, 1, 1) | PSEUDO | MOD_RRBS}, 330127664Sbms {"br.wtop.dptk.few", BR (3, 0, 2, 0) | MOD_RRBS}, 331127664Sbms {"br.wtop.dptk", BR (3, 0, 2, 0) | PSEUDO | MOD_RRBS}, 332127664Sbms {"br.wtop.dptk.few.clr", BR (3, 0, 2, 1) | MOD_RRBS}, 333127664Sbms {"br.wtop.dptk.clr", BR (3, 0, 2, 1) | PSEUDO | MOD_RRBS}, 33417683Spst {"br.wtop.dpnt.few", BR (3, 0, 3, 0) | MOD_RRBS}, 335127664Sbms {"br.wtop.dpnt", BR (3, 0, 3, 0) | PSEUDO | MOD_RRBS}, 336127664Sbms {"br.wtop.dpnt.few.clr", BR (3, 0, 3, 1) | MOD_RRBS}, 33717683Spst {"br.wtop.dpnt.clr", BR (3, 0, 3, 1) | PSEUDO | MOD_RRBS}, 33817683Spst {"br.wtop.sptk.many", BR (3, 1, 0, 0) | MOD_RRBS}, 33917683Spst {"br.wtop.sptk.many.clr", BR (3, 1, 0, 1) | MOD_RRBS}, 34098530Sfenner {"br.wtop.spnt.many", BR (3, 1, 1, 0) | MOD_RRBS}, 341127664Sbms {"br.wtop.spnt.many.clr", BR (3, 1, 1, 1) | MOD_RRBS}, 342127664Sbms {"br.wtop.dptk.many", BR (3, 1, 2, 0) | MOD_RRBS}, 343127664Sbms {"br.wtop.dptk.many.clr", BR (3, 1, 2, 1) | MOD_RRBS}, 34417683Spst {"br.wtop.dpnt.many", BR (3, 1, 3, 0) | MOD_RRBS}, 34517683Spst {"br.wtop.dpnt.many.clr", BR (3, 1, 3, 1) | MOD_RRBS}, 346127664Sbms 34717683Spst#undef BR 34817683Spst#define BR(a,b,c,d) \ 34917683Spst B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED 35017683Spst {"br.cloop.sptk.few", BR (5, 0, 0, 0)}, 35117683Spst {"br.cloop.sptk", BR (5, 0, 0, 0) | PSEUDO}, 35217683Spst {"br.cloop.sptk.few.clr", BR (5, 0, 0, 1)}, 35317683Spst {"br.cloop.sptk.clr", BR (5, 0, 0, 1) | PSEUDO}, 35417683Spst {"br.cloop.spnt.few", BR (5, 0, 1, 0)}, 35517683Spst {"br.cloop.spnt", BR (5, 0, 1, 0) | PSEUDO}, 35617683Spst {"br.cloop.spnt.few.clr", BR (5, 0, 1, 1)}, 35717683Spst {"br.cloop.spnt.clr", BR (5, 0, 1, 1) | PSEUDO}, 35817683Spst {"br.cloop.dptk.few", BR (5, 0, 2, 0)}, 35917683Spst {"br.cloop.dptk", BR (5, 0, 2, 0) | PSEUDO}, 36075107Sfenner {"br.cloop.dptk.few.clr", BR (5, 0, 2, 1)}, 36117683Spst {"br.cloop.dptk.clr", BR (5, 0, 2, 1) | PSEUDO}, 36217683Spst {"br.cloop.dpnt.few", BR (5, 0, 3, 0)}, 36317683Spst {"br.cloop.dpnt", BR (5, 0, 3, 0) | PSEUDO}, 36498530Sfenner {"br.cloop.dpnt.few.clr", BR (5, 0, 3, 1)}, 36517683Spst {"br.cloop.dpnt.clr", BR (5, 0, 3, 1) | PSEUDO}, 36675107Sfenner {"br.cloop.sptk.many", BR (5, 1, 0, 0)}, 36717683Spst {"br.cloop.sptk.many.clr", BR (5, 1, 0, 1)}, 36875107Sfenner {"br.cloop.spnt.many", BR (5, 1, 1, 0)}, 36917683Spst {"br.cloop.spnt.many.clr", BR (5, 1, 1, 1)}, 37075107Sfenner {"br.cloop.dptk.many", BR (5, 1, 2, 0)}, 37175107Sfenner {"br.cloop.dptk.many.clr", BR (5, 1, 2, 1)}, 372127664Sbms {"br.cloop.dpnt.many", BR (5, 1, 3, 0)}, 37375107Sfenner {"br.cloop.dpnt.many.clr", BR (5, 1, 3, 1)}, 374127664Sbms {"br.cexit.sptk.few", BR (6, 0, 0, 0) | MOD_RRBS}, 37575107Sfenner {"br.cexit.sptk", BR (6, 0, 0, 0) | PSEUDO | MOD_RRBS}, 37675107Sfenner {"br.cexit.sptk.few.clr", BR (6, 0, 0, 1) | MOD_RRBS}, 37798530Sfenner {"br.cexit.sptk.clr", BR (6, 0, 0, 1) | PSEUDO | MOD_RRBS}, 37898530Sfenner {"br.cexit.spnt.few", BR (6, 0, 1, 0) | MOD_RRBS}, 37975107Sfenner {"br.cexit.spnt", BR (6, 0, 1, 0) | PSEUDO | MOD_RRBS}, 38098530Sfenner {"br.cexit.spnt.few.clr", BR (6, 0, 1, 1) | MOD_RRBS}, 38198530Sfenner {"br.cexit.spnt.clr", BR (6, 0, 1, 1) | PSEUDO | MOD_RRBS}, 38217683Spst {"br.cexit.dptk.few", BR (6, 0, 2, 0) | MOD_RRBS}, 38375107Sfenner {"br.cexit.dptk", BR (6, 0, 2, 0) | PSEUDO | MOD_RRBS}, 38417683Spst {"br.cexit.dptk.few.clr", BR (6, 0, 2, 1) | MOD_RRBS}, 38575107Sfenner {"br.cexit.dptk.clr", BR (6, 0, 2, 1) | PSEUDO | MOD_RRBS}, 38675107Sfenner {"br.cexit.dpnt.few", BR (6, 0, 3, 0) | MOD_RRBS}, 38775107Sfenner {"br.cexit.dpnt", BR (6, 0, 3, 0) | PSEUDO | MOD_RRBS}, 38875107Sfenner {"br.cexit.dpnt.few.clr", BR (6, 0, 3, 1) | MOD_RRBS}, 38975107Sfenner {"br.cexit.dpnt.clr", BR (6, 0, 3, 1) | PSEUDO | MOD_RRBS}, 39075107Sfenner {"br.cexit.sptk.many", BR (6, 1, 0, 0) | MOD_RRBS}, 39175107Sfenner {"br.cexit.sptk.many.clr", BR (6, 1, 0, 1) | MOD_RRBS}, 39275107Sfenner {"br.cexit.spnt.many", BR (6, 1, 1, 0) | MOD_RRBS}, 39375107Sfenner {"br.cexit.spnt.many.clr", BR (6, 1, 1, 1) | MOD_RRBS}, 39475107Sfenner {"br.cexit.dptk.many", BR (6, 1, 2, 0) | MOD_RRBS}, 39575107Sfenner {"br.cexit.dptk.many.clr", BR (6, 1, 2, 1) | MOD_RRBS}, 39617683Spst {"br.cexit.dpnt.many", BR (6, 1, 3, 0) | MOD_RRBS}, 39717683Spst {"br.cexit.dpnt.many.clr", BR (6, 1, 3, 1) | MOD_RRBS}, 39875107Sfenner {"br.ctop.sptk.few", BR (7, 0, 0, 0) | MOD_RRBS}, 39975107Sfenner {"br.ctop.sptk", BR (7, 0, 0, 0) | PSEUDO | MOD_RRBS}, 40017683Spst {"br.ctop.sptk.few.clr", BR (7, 0, 0, 1) | MOD_RRBS}, 40117683Spst {"br.ctop.sptk.clr", BR (7, 0, 0, 1) | PSEUDO | MOD_RRBS}, 40275107Sfenner {"br.ctop.spnt.few", BR (7, 0, 1, 0) | MOD_RRBS}, 40375107Sfenner {"br.ctop.spnt", BR (7, 0, 1, 0) | PSEUDO | MOD_RRBS}, 40475107Sfenner {"br.ctop.spnt.few.clr", BR (7, 0, 1, 1) | MOD_RRBS}, 40575107Sfenner {"br.ctop.spnt.clr", BR (7, 0, 1, 1) | PSEUDO | MOD_RRBS}, 40675107Sfenner {"br.ctop.dptk.few", BR (7, 0, 2, 0) | MOD_RRBS}, 40717683Spst {"br.ctop.dptk", BR (7, 0, 2, 0) | PSEUDO | MOD_RRBS}, 40817683Spst {"br.ctop.dptk.few.clr", BR (7, 0, 2, 1) | MOD_RRBS}, 40917683Spst {"br.ctop.dptk.clr", BR (7, 0, 2, 1) | PSEUDO | MOD_RRBS}, 41017683Spst {"br.ctop.dpnt.few", BR (7, 0, 3, 0) | MOD_RRBS}, 41175107Sfenner {"br.ctop.dpnt", BR (7, 0, 3, 0) | PSEUDO | MOD_RRBS}, 41298530Sfenner {"br.ctop.dpnt.few.clr", BR (7, 0, 3, 1) | MOD_RRBS}, 41398530Sfenner {"br.ctop.dpnt.clr", BR (7, 0, 3, 1) | PSEUDO | MOD_RRBS}, 41498530Sfenner {"br.ctop.sptk.many", BR (7, 1, 0, 0) | MOD_RRBS}, 41598530Sfenner {"br.ctop.sptk.many.clr", BR (7, 1, 0, 1) | MOD_RRBS}, 41698530Sfenner {"br.ctop.spnt.many", BR (7, 1, 1, 0) | MOD_RRBS}, 41775107Sfenner {"br.ctop.spnt.many.clr", BR (7, 1, 1, 1) | MOD_RRBS}, 41875107Sfenner {"br.ctop.dptk.many", BR (7, 1, 2, 0) | MOD_RRBS}, 41975107Sfenner {"br.ctop.dptk.many.clr", BR (7, 1, 2, 1) | MOD_RRBS}, 42075107Sfenner {"br.ctop.dpnt.many", BR (7, 1, 3, 0) | MOD_RRBS}, 42175107Sfenner {"br.ctop.dpnt.many.clr", BR (7, 1, 3, 1) | MOD_RRBS}, 42275107Sfenner 42398530Sfenner#undef BR 424127664Sbms#define BR(a,b,c,d) \ 425127664Sbms B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 426127664Sbms {"br.call.sptk.few", B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}}, 427127664Sbms {"br.call.sptk", B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, PSEUDO}, 428127664Sbms {"br.call.sptk.few.clr", B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}}, 429127664Sbms {"br.call.sptk.clr", B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, PSEUDO}, 430127664Sbms {"br.call.spnt.few", B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}}, 431127664Sbms {"br.call.spnt", B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, PSEUDO}, 43298530Sfenner {"br.call.spnt.few.clr", B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}}, 43398530Sfenner {"br.call.spnt.clr", B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, PSEUDO}, 43498530Sfenner {"br.call.dptk.few", B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}}, 43598530Sfenner {"br.call.dptk", B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, PSEUDO}, 436127664Sbms {"br.call.dptk.few.clr", B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}}, 43798530Sfenner {"br.call.dptk.clr", B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, PSEUDO}, 43817683Spst {"br.call.dpnt.few", B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}}, 43917683Spst {"br.call.dpnt", B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, PSEUDO}, 44017683Spst {"br.call.dpnt.few.clr", B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}}, 44175107Sfenner {"br.call.dpnt.clr", B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, PSEUDO}, 44275107Sfenner {"br.call.sptk.many", B, OpPaWhaD (5, 1, 0, 0), {B1, TGT25c}}, 44317683Spst {"br.call.sptk.many.clr", B, OpPaWhaD (5, 1, 0, 1), {B1, TGT25c}}, 44417683Spst {"br.call.spnt.many", B, OpPaWhaD (5, 1, 1, 0), {B1, TGT25c}}, 44517683Spst {"br.call.spnt.many.clr", B, OpPaWhaD (5, 1, 1, 1), {B1, TGT25c}}, 44617683Spst {"br.call.dptk.many", B, OpPaWhaD (5, 1, 2, 0), {B1, TGT25c}}, 44717683Spst {"br.call.dptk.many.clr", B, OpPaWhaD (5, 1, 2, 1), {B1, TGT25c}}, 44875107Sfenner {"br.call.dpnt.many", B, OpPaWhaD (5, 1, 3, 0), {B1, TGT25c}}, 44975107Sfenner {"br.call.dpnt.many.clr", B, OpPaWhaD (5, 1, 3, 1), {B1, TGT25c}}, 45017683Spst#undef BR 45117683Spst 45217683Spst /* branch predict */ 45317683Spst#define BRP(a,b) \ 45417683Spst B0, OpIhWhb (7, a, b), {TGT25c, TAG13}, NO_PRED 45517683Spst {"brp.sptk", BRP (0, 0)}, 45617683Spst {"brp.loop", BRP (0, 1)}, 45717683Spst {"brp.dptk", BRP (0, 2)}, 45817683Spst {"brp.exit", BRP (0, 3)}, 45917683Spst {"brp.sptk.imp", BRP (1, 0)}, 46017683Spst {"brp.loop.imp", BRP (1, 1)}, 46117683Spst {"brp.dptk.imp", BRP (1, 2)}, 46217683Spst {"brp.exit.imp", BRP (1, 3)}, 46317683Spst#undef BRP 46417683Spst 46517683Spst {0} 466127664Sbms }; 467127664Sbms 468127664Sbms#undef B0 469127664Sbms#undef B 47017683Spst#undef bBtype 47117683Spst#undef bD 47217683Spst#undef bIh 47317683Spst#undef bPa 47417683Spst#undef bPr 47539291Sfenner#undef bWha 47639291Sfenner#undef bWhb 47717683Spst#undef bWhc 47839291Sfenner#undef bX6 47975107Sfenner#undef mBtype 48098530Sfenner#undef mD 48198530Sfenner#undef mIh 48298530Sfenner#undef mPa 48398530Sfenner#undef mPr 48498530Sfenner#undef mWha 48598530Sfenner#undef mWhb 48698530Sfenner#undef mWhc 48798530Sfenner#undef mX6 48898530Sfenner#undef OpX6 48998530Sfenner#undef OpPaWhaD 49098530Sfenner#undef OpPaWhcD 49198530Sfenner#undef OpBtypePaWhaD 49298530Sfenner#undef OpBtypePaWhaDPr 49398530Sfenner#undef OpX6BtypePaWhaD 49498530Sfenner#undef OpX6BtypePaWhaDPr 49598530Sfenner#undef OpIhWhb 49698530Sfenner#undef OpX6IhWhb 49798530Sfenner