00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "ia64-opc.h"
00023
00024 #define B0 IA64_TYPE_B, 0
00025 #define B IA64_TYPE_B, 1
00026
00027
00028 #define bBtype(x) (((ia64_insn) ((x) & 0x7)) << 6)
00029 #define bD(x) (((ia64_insn) ((x) & 0x1)) << 35)
00030 #define bIh(x) (((ia64_insn) ((x) & 0x1)) << 35)
00031 #define bPa(x) (((ia64_insn) ((x) & 0x1)) << 12)
00032 #define bPr(x) (((ia64_insn) ((x) & 0x3f)) << 0)
00033 #define bWha(x) (((ia64_insn) ((x) & 0x3)) << 33)
00034 #define bWhb(x) (((ia64_insn) ((x) & 0x3)) << 3)
00035 #define bWhc(x) (((ia64_insn) ((x) & 0x7)) << 32)
00036 #define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27)
00037
00038 #define mBtype bBtype (-1)
00039 #define mD bD (-1)
00040 #define mIh bIh (-1)
00041 #define mPa bPa (-1)
00042 #define mPr bPr (-1)
00043 #define mWha bWha (-1)
00044 #define mWhb bWhb (-1)
00045 #define mWhc bWhc (-1)
00046 #define mX6 bX6 (-1)
00047
00048 #define OpX6(a,b) (bOp (a) | bX6 (b)), (mOp | mX6)
00049 #define OpPaWhaD(a,b,c,d) \
00050 (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD)
00051 #define OpPaWhcD(a,b,c,d) \
00052 (bOp (a) | bPa (b) | bWhc (c) | bD (d)), (mOp | mPa | mWhc | mD)
00053 #define OpBtypePaWhaD(a,b,c,d,e) \
00054 (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e)), \
00055 (mOp | mBtype | mPa | mWha | mD)
00056 #define OpBtypePaWhaDPr(a,b,c,d,e,f) \
00057 (bOp (a) | bBtype (b) | bPa (c) | bWha (d) | bD (e) | bPr (f)), \
00058 (mOp | mBtype | mPa | mWha | mD | mPr)
00059 #define OpX6BtypePaWhaD(a,b,c,d,e,f) \
00060 (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f)), \
00061 (mOp | mX6 | mBtype | mPa | mWha | mD)
00062 #define OpX6BtypePaWhaDPr(a,b,c,d,e,f,g) \
00063 (bOp (a) | bX6 (b) | bBtype (c) | bPa (d) | bWha (e) | bD (f) | bPr (g)), \
00064 (mOp | mX6 | mBtype | mPa | mWha | mD | mPr)
00065 #define OpIhWhb(a,b,c) \
00066 (bOp (a) | bIh (b) | bWhb (c)), \
00067 (mOp | mIh | mWhb)
00068 #define OpX6IhWhb(a,b,c,d) \
00069 (bOp (a) | bX6 (b) | bIh (c) | bWhb (d)), \
00070 (mOp | mX6 | mIh | mWhb)
00071
00072
00073
00074 #define EMPTY 0,0,NULL
00075
00076 struct ia64_opcode ia64_opcodes_b[] =
00077 {
00078
00079
00080 #define BR(a,b) \
00081 B0, OpX6BtypePaWhaDPr (0, 0x20, 0, a, 0, b, 0), {B2}, PSEUDO, 0, NULL
00082 {"br.few", BR (0, 0)},
00083 {"br", BR (0, 0)},
00084 {"br.few.clr", BR (0, 1)},
00085 {"br.clr", BR (0, 1)},
00086 {"br.many", BR (1, 0)},
00087 {"br.many.clr", BR (1, 1)},
00088 #undef BR
00089
00090 #define BR(a,b,c,d,e) B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, EMPTY
00091 #define BRP(a,b,c,d,e) B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, PSEUDO, 0, NULL
00092 #define BRT(a,b,c,d,e,f) B0, OpX6BtypePaWhaD (0, a, b, c, d, e), {B2}, f, 0, NULL
00093 {"br.cond.sptk.few", BR (0x20, 0, 0, 0, 0)},
00094 {"br.cond.sptk", BRP (0x20, 0, 0, 0, 0)},
00095 {"br.cond.sptk.few.clr", BR (0x20, 0, 0, 0, 1)},
00096 {"br.cond.sptk.clr", BRP (0x20, 0, 0, 0, 1)},
00097 {"br.cond.spnt.few", BR (0x20, 0, 0, 1, 0)},
00098 {"br.cond.spnt", BRP (0x20, 0, 0, 1, 0)},
00099 {"br.cond.spnt.few.clr", BR (0x20, 0, 0, 1, 1)},
00100 {"br.cond.spnt.clr", BRP (0x20, 0, 0, 1, 1)},
00101 {"br.cond.dptk.few", BR (0x20, 0, 0, 2, 0)},
00102 {"br.cond.dptk", BRP (0x20, 0, 0, 2, 0)},
00103 {"br.cond.dptk.few.clr", BR (0x20, 0, 0, 2, 1)},
00104 {"br.cond.dptk.clr", BRP (0x20, 0, 0, 2, 1)},
00105 {"br.cond.dpnt.few", BR (0x20, 0, 0, 3, 0)},
00106 {"br.cond.dpnt", BRP (0x20, 0, 0, 3, 0)},
00107 {"br.cond.dpnt.few.clr", BR (0x20, 0, 0, 3, 1)},
00108 {"br.cond.dpnt.clr", BRP (0x20, 0, 0, 3, 1)},
00109 {"br.cond.sptk.many", BR (0x20, 0, 1, 0, 0)},
00110 {"br.cond.sptk.many.clr", BR (0x20, 0, 1, 0, 1)},
00111 {"br.cond.spnt.many", BR (0x20, 0, 1, 1, 0)},
00112 {"br.cond.spnt.many.clr", BR (0x20, 0, 1, 1, 1)},
00113 {"br.cond.dptk.many", BR (0x20, 0, 1, 2, 0)},
00114 {"br.cond.dptk.many.clr", BR (0x20, 0, 1, 2, 1)},
00115 {"br.cond.dpnt.many", BR (0x20, 0, 1, 3, 0)},
00116 {"br.cond.dpnt.many.clr", BR (0x20, 0, 1, 3, 1)},
00117 {"br.sptk.few", BR (0x20, 0, 0, 0, 0)},
00118 {"br.sptk", BRP (0x20, 0, 0, 0, 0)},
00119 {"br.sptk.few.clr", BR (0x20, 0, 0, 0, 1)},
00120 {"br.sptk.clr", BRP (0x20, 0, 0, 0, 1)},
00121 {"br.spnt.few", BR (0x20, 0, 0, 1, 0)},
00122 {"br.spnt", BRP (0x20, 0, 0, 1, 0)},
00123 {"br.spnt.few.clr", BR (0x20, 0, 0, 1, 1)},
00124 {"br.spnt.clr", BRP (0x20, 0, 0, 1, 1)},
00125 {"br.dptk.few", BR (0x20, 0, 0, 2, 0)},
00126 {"br.dptk", BRP (0x20, 0, 0, 2, 0)},
00127 {"br.dptk.few.clr", BR (0x20, 0, 0, 2, 1)},
00128 {"br.dptk.clr", BRP (0x20, 0, 0, 2, 1)},
00129 {"br.dpnt.few", BR (0x20, 0, 0, 3, 0)},
00130 {"br.dpnt", BRP (0x20, 0, 0, 3, 0)},
00131 {"br.dpnt.few.clr", BR (0x20, 0, 0, 3, 1)},
00132 {"br.dpnt.clr", BRP (0x20, 0, 0, 3, 1)},
00133 {"br.sptk.many", BR (0x20, 0, 1, 0, 0)},
00134 {"br.sptk.many.clr", BR (0x20, 0, 1, 0, 1)},
00135 {"br.spnt.many", BR (0x20, 0, 1, 1, 0)},
00136 {"br.spnt.many.clr", BR (0x20, 0, 1, 1, 1)},
00137 {"br.dptk.many", BR (0x20, 0, 1, 2, 0)},
00138 {"br.dptk.many.clr", BR (0x20, 0, 1, 2, 1)},
00139 {"br.dpnt.many", BR (0x20, 0, 1, 3, 0)},
00140 {"br.dpnt.many.clr", BR (0x20, 0, 1, 3, 1)},
00141 {"br.ia.sptk.few", BR (0x20, 1, 0, 0, 0)},
00142 {"br.ia.sptk", BRP (0x20, 1, 0, 0, 0)},
00143 {"br.ia.sptk.few.clr", BR (0x20, 1, 0, 0, 1)},
00144 {"br.ia.sptk.clr", BRP (0x20, 1, 0, 0, 1)},
00145 {"br.ia.spnt.few", BR (0x20, 1, 0, 1, 0)},
00146 {"br.ia.spnt", BRP (0x20, 1, 0, 1, 0)},
00147 {"br.ia.spnt.few.clr", BR (0x20, 1, 0, 1, 1)},
00148 {"br.ia.spnt.clr", BRP (0x20, 1, 0, 1, 1)},
00149 {"br.ia.dptk.few", BR (0x20, 1, 0, 2, 0)},
00150 {"br.ia.dptk", BRP (0x20, 1, 0, 2, 0)},
00151 {"br.ia.dptk.few.clr", BR (0x20, 1, 0, 2, 1)},
00152 {"br.ia.dptk.clr", BRP (0x20, 1, 0, 2, 1)},
00153 {"br.ia.dpnt.few", BR (0x20, 1, 0, 3, 0)},
00154 {"br.ia.dpnt", BRP (0x20, 1, 0, 3, 0)},
00155 {"br.ia.dpnt.few.clr", BR (0x20, 1, 0, 3, 1)},
00156 {"br.ia.dpnt.clr", BRP (0x20, 1, 0, 3, 1)},
00157 {"br.ia.sptk.many", BR (0x20, 1, 1, 0, 0)},
00158 {"br.ia.sptk.many.clr", BR (0x20, 1, 1, 0, 1)},
00159 {"br.ia.spnt.many", BR (0x20, 1, 1, 1, 0)},
00160 {"br.ia.spnt.many.clr", BR (0x20, 1, 1, 1, 1)},
00161 {"br.ia.dptk.many", BR (0x20, 1, 1, 2, 0)},
00162 {"br.ia.dptk.many.clr", BR (0x20, 1, 1, 2, 1)},
00163 {"br.ia.dpnt.many", BR (0x20, 1, 1, 3, 0)},
00164 {"br.ia.dpnt.many.clr", BR (0x20, 1, 1, 3, 1)},
00165 {"br.ret.sptk.few", BRT (0x21, 4, 0, 0, 0, MOD_RRBS)},
00166 {"br.ret.sptk", BRT (0x21, 4, 0, 0, 0, PSEUDO | MOD_RRBS)},
00167 {"br.ret.sptk.few.clr", BRT (0x21, 4, 0, 0, 1, MOD_RRBS)},
00168 {"br.ret.sptk.clr", BRT (0x21, 4, 0, 0, 1, PSEUDO | MOD_RRBS)},
00169 {"br.ret.spnt.few", BRT (0x21, 4, 0, 1, 0, MOD_RRBS)},
00170 {"br.ret.spnt", BRT (0x21, 4, 0, 1, 0, PSEUDO | MOD_RRBS)},
00171 {"br.ret.spnt.few.clr", BRT (0x21, 4, 0, 1, 1, MOD_RRBS)},
00172 {"br.ret.spnt.clr", BRT (0x21, 4, 0, 1, 1, PSEUDO | MOD_RRBS)},
00173 {"br.ret.dptk.few", BRT (0x21, 4, 0, 2, 0, MOD_RRBS)},
00174 {"br.ret.dptk", BRT (0x21, 4, 0, 2, 0, PSEUDO | MOD_RRBS)},
00175 {"br.ret.dptk.few.clr", BRT (0x21, 4, 0, 2, 1, MOD_RRBS)},
00176 {"br.ret.dptk.clr", BRT (0x21, 4, 0, 2, 1, PSEUDO | MOD_RRBS)},
00177 {"br.ret.dpnt.few", BRT (0x21, 4, 0, 3, 0, MOD_RRBS)},
00178 {"br.ret.dpnt", BRT (0x21, 4, 0, 3, 0, PSEUDO | MOD_RRBS)},
00179 {"br.ret.dpnt.few.clr", BRT (0x21, 4, 0, 3, 1, MOD_RRBS)},
00180 {"br.ret.dpnt.clr", BRT (0x21, 4, 0, 3, 1, PSEUDO | MOD_RRBS)},
00181 {"br.ret.sptk.many", BRT (0x21, 4, 1, 0, 0, MOD_RRBS)},
00182 {"br.ret.sptk.many.clr", BRT (0x21, 4, 1, 0, 1, MOD_RRBS)},
00183 {"br.ret.spnt.many", BRT (0x21, 4, 1, 1, 0, MOD_RRBS)},
00184 {"br.ret.spnt.many.clr", BRT (0x21, 4, 1, 1, 1, MOD_RRBS)},
00185 {"br.ret.dptk.many", BRT (0x21, 4, 1, 2, 0, MOD_RRBS)},
00186 {"br.ret.dptk.many.clr", BRT (0x21, 4, 1, 2, 1, MOD_RRBS)},
00187 {"br.ret.dpnt.many", BRT (0x21, 4, 1, 3, 0, MOD_RRBS)},
00188 {"br.ret.dpnt.many.clr", BRT (0x21, 4, 1, 3, 1, MOD_RRBS)},
00189 #undef BR
00190 #undef BRP
00191 #undef BRT
00192
00193 {"cover", B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
00194 {"clrrrb", B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
00195 {"clrrrb.pr", B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL},
00196 {"rfi", B0, OpX6 (0, 0x08), {0, }, NO_PRED | LAST | PRIV | MOD_RRBS, 0, NULL},
00197 {"bsw.0", B0, OpX6 (0, 0x0c), {0, }, NO_PRED | LAST | PRIV, 0, NULL},
00198 {"bsw.1", B0, OpX6 (0, 0x0d), {0, }, NO_PRED | LAST | PRIV, 0, NULL},
00199 {"epc", B0, OpX6 (0, 0x10), {0, }, NO_PRED, 0, NULL},
00200
00201 {"break.b", B0, OpX6 (0, 0x00), {IMMU21}, EMPTY},
00202
00203 {"br.call.sptk.few", B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, EMPTY},
00204 {"br.call.sptk", B, OpPaWhcD (1, 0, 1, 0), {B1, B2}, PSEUDO, 0, NULL},
00205 {"br.call.sptk.few.clr", B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, EMPTY},
00206 {"br.call.sptk.clr", B, OpPaWhcD (1, 0, 1, 1), {B1, B2}, PSEUDO, 0, NULL},
00207 {"br.call.spnt.few", B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, EMPTY},
00208 {"br.call.spnt", B, OpPaWhcD (1, 0, 3, 0), {B1, B2}, PSEUDO, 0, NULL},
00209 {"br.call.spnt.few.clr", B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, EMPTY},
00210 {"br.call.spnt.clr", B, OpPaWhcD (1, 0, 3, 1), {B1, B2}, PSEUDO, 0, NULL},
00211 {"br.call.dptk.few", B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, EMPTY},
00212 {"br.call.dptk", B, OpPaWhcD (1, 0, 5, 0), {B1, B2}, PSEUDO, 0, NULL},
00213 {"br.call.dptk.few.clr", B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, EMPTY},
00214 {"br.call.dptk.clr", B, OpPaWhcD (1, 0, 5, 1), {B1, B2}, PSEUDO, 0, NULL},
00215 {"br.call.dpnt.few", B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, EMPTY},
00216 {"br.call.dpnt", B, OpPaWhcD (1, 0, 7, 0), {B1, B2}, PSEUDO, 0, NULL},
00217 {"br.call.dpnt.few.clr", B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, EMPTY},
00218 {"br.call.dpnt.clr", B, OpPaWhcD (1, 0, 7, 1), {B1, B2}, PSEUDO, 0, NULL},
00219 {"br.call.sptk.many", B, OpPaWhcD (1, 1, 1, 0), {B1, B2}, EMPTY},
00220 {"br.call.sptk.many.clr", B, OpPaWhcD (1, 1, 1, 1), {B1, B2}, EMPTY},
00221 {"br.call.spnt.many", B, OpPaWhcD (1, 1, 3, 0), {B1, B2}, EMPTY},
00222 {"br.call.spnt.many.clr", B, OpPaWhcD (1, 1, 3, 1), {B1, B2}, EMPTY},
00223 {"br.call.dptk.many", B, OpPaWhcD (1, 1, 5, 0), {B1, B2}, EMPTY},
00224 {"br.call.dptk.many.clr", B, OpPaWhcD (1, 1, 5, 1), {B1, B2}, EMPTY},
00225 {"br.call.dpnt.many", B, OpPaWhcD (1, 1, 7, 0), {B1, B2}, EMPTY},
00226 {"br.call.dpnt.many.clr", B, OpPaWhcD (1, 1, 7, 1), {B1, B2}, EMPTY},
00227
00228 #define BRP(a,b,c) \
00229 B0, OpX6IhWhb (2, a, b, c), {B2, TAG13}, NO_PRED, 0, NULL
00230 {"brp.sptk", BRP (0x10, 0, 0)},
00231 {"brp.dptk", BRP (0x10, 0, 2)},
00232 {"brp.sptk.imp", BRP (0x10, 1, 0)},
00233 {"brp.dptk.imp", BRP (0x10, 1, 2)},
00234 {"brp.ret.sptk", BRP (0x11, 0, 0)},
00235 {"brp.ret.dptk", BRP (0x11, 0, 2)},
00236 {"brp.ret.sptk.imp", BRP (0x11, 1, 0)},
00237 {"brp.ret.dptk.imp", BRP (0x11, 1, 2)},
00238 #undef BRP
00239
00240 {"nop.b", B0, OpX6 (2, 0x00), {IMMU21}, EMPTY},
00241 {"hint.b", B0, OpX6 (2, 0x01), {IMMU21}, EMPTY},
00242
00243 #define BR(a,b) \
00244 B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO, 0, NULL
00245 {"br.few", BR (0, 0)},
00246 {"br", BR (0, 0)},
00247 {"br.few.clr", BR (0, 1)},
00248 {"br.clr", BR (0, 1)},
00249 {"br.many", BR (1, 0)},
00250 {"br.many.clr", BR (1, 1)},
00251 #undef BR
00252
00253 #define BR(a,b,c) \
00254 B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}, EMPTY
00255 #define BRP(a,b,c) \
00256 B0, OpBtypePaWhaD (4, 0, a, b, c), {TGT25c}, PSEUDO, 0, NULL
00257 {"br.cond.sptk.few", BR (0, 0, 0)},
00258 {"br.cond.sptk", BRP (0, 0, 0)},
00259 {"br.cond.sptk.few.clr", BR (0, 0, 1)},
00260 {"br.cond.sptk.clr", BRP (0, 0, 1)},
00261 {"br.cond.spnt.few", BR (0, 1, 0)},
00262 {"br.cond.spnt", BRP (0, 1, 0)},
00263 {"br.cond.spnt.few.clr", BR (0, 1, 1)},
00264 {"br.cond.spnt.clr", BRP (0, 1, 1)},
00265 {"br.cond.dptk.few", BR (0, 2, 0)},
00266 {"br.cond.dptk", BRP (0, 2, 0)},
00267 {"br.cond.dptk.few.clr", BR (0, 2, 1)},
00268 {"br.cond.dptk.clr", BRP (0, 2, 1)},
00269 {"br.cond.dpnt.few", BR (0, 3, 0)},
00270 {"br.cond.dpnt", BRP (0, 3, 0)},
00271 {"br.cond.dpnt.few.clr", BR (0, 3, 1)},
00272 {"br.cond.dpnt.clr", BRP (0, 3, 1)},
00273 {"br.cond.sptk.many", BR (1, 0, 0)},
00274 {"br.cond.sptk.many.clr", BR (1, 0, 1)},
00275 {"br.cond.spnt.many", BR (1, 1, 0)},
00276 {"br.cond.spnt.many.clr", BR (1, 1, 1)},
00277 {"br.cond.dptk.many", BR (1, 2, 0)},
00278 {"br.cond.dptk.many.clr", BR (1, 2, 1)},
00279 {"br.cond.dpnt.many", BR (1, 3, 0)},
00280 {"br.cond.dpnt.many.clr", BR (1, 3, 1)},
00281 {"br.sptk.few", BR (0, 0, 0)},
00282 {"br.sptk", BRP (0, 0, 0)},
00283 {"br.sptk.few.clr", BR (0, 0, 1)},
00284 {"br.sptk.clr", BRP (0, 0, 1)},
00285 {"br.spnt.few", BR (0, 1, 0)},
00286 {"br.spnt", BRP (0, 1, 0)},
00287 {"br.spnt.few.clr", BR (0, 1, 1)},
00288 {"br.spnt.clr", BRP (0, 1, 1)},
00289 {"br.dptk.few", BR (0, 2, 0)},
00290 {"br.dptk", BRP (0, 2, 0)},
00291 {"br.dptk.few.clr", BR (0, 2, 1)},
00292 {"br.dptk.clr", BRP (0, 2, 1)},
00293 {"br.dpnt.few", BR (0, 3, 0)},
00294 {"br.dpnt", BRP (0, 3, 0)},
00295 {"br.dpnt.few.clr", BR (0, 3, 1)},
00296 {"br.dpnt.clr", BRP (0, 3, 1)},
00297 {"br.sptk.many", BR (1, 0, 0)},
00298 {"br.sptk.many.clr", BR (1, 0, 1)},
00299 {"br.spnt.many", BR (1, 1, 0)},
00300 {"br.spnt.many.clr", BR (1, 1, 1)},
00301 {"br.dptk.many", BR (1, 2, 0)},
00302 {"br.dptk.many.clr", BR (1, 2, 1)},
00303 {"br.dpnt.many", BR (1, 3, 0)},
00304 {"br.dpnt.many.clr", BR (1, 3, 1)},
00305 #undef BR
00306 #undef BRP
00307
00308 #define BR(a,b,c,d, e) \
00309 B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | e, 0, NULL
00310 {"br.wexit.sptk.few", BR (2, 0, 0, 0, MOD_RRBS)},
00311 {"br.wexit.sptk", BR (2, 0, 0, 0, PSEUDO | MOD_RRBS)},
00312 {"br.wexit.sptk.few.clr", BR (2, 0, 0, 1, MOD_RRBS)},
00313 {"br.wexit.sptk.clr", BR (2, 0, 0, 1, PSEUDO | MOD_RRBS)},
00314 {"br.wexit.spnt.few", BR (2, 0, 1, 0, MOD_RRBS)},
00315 {"br.wexit.spnt", BR (2, 0, 1, 0, PSEUDO | MOD_RRBS)},
00316 {"br.wexit.spnt.few.clr", BR (2, 0, 1, 1, MOD_RRBS)},
00317 {"br.wexit.spnt.clr", BR (2, 0, 1, 1, PSEUDO | MOD_RRBS)},
00318 {"br.wexit.dptk.few", BR (2, 0, 2, 0, MOD_RRBS)},
00319 {"br.wexit.dptk", BR (2, 0, 2, 0, PSEUDO | MOD_RRBS)},
00320 {"br.wexit.dptk.few.clr", BR (2, 0, 2, 1, MOD_RRBS)},
00321 {"br.wexit.dptk.clr", BR (2, 0, 2, 1, PSEUDO | MOD_RRBS)},
00322 {"br.wexit.dpnt.few", BR (2, 0, 3, 0, MOD_RRBS)},
00323 {"br.wexit.dpnt", BR (2, 0, 3, 0, PSEUDO | MOD_RRBS)},
00324 {"br.wexit.dpnt.few.clr", BR (2, 0, 3, 1, MOD_RRBS)},
00325 {"br.wexit.dpnt.clr", BR (2, 0, 3, 1, PSEUDO | MOD_RRBS)},
00326 {"br.wexit.sptk.many", BR (2, 1, 0, 0, MOD_RRBS)},
00327 {"br.wexit.sptk.many.clr", BR (2, 1, 0, 1, MOD_RRBS)},
00328 {"br.wexit.spnt.many", BR (2, 1, 1, 0, MOD_RRBS)},
00329 {"br.wexit.spnt.many.clr", BR (2, 1, 1, 1, MOD_RRBS)},
00330 {"br.wexit.dptk.many", BR (2, 1, 2, 0, MOD_RRBS)},
00331 {"br.wexit.dptk.many.clr", BR (2, 1, 2, 1, MOD_RRBS)},
00332 {"br.wexit.dpnt.many", BR (2, 1, 3, 0, MOD_RRBS)},
00333 {"br.wexit.dpnt.many.clr", BR (2, 1, 3, 1, MOD_RRBS)},
00334 {"br.wtop.sptk.few", BR (3, 0, 0, 0, MOD_RRBS)},
00335 {"br.wtop.sptk", BR (3, 0, 0, 0, PSEUDO | MOD_RRBS)},
00336 {"br.wtop.sptk.few.clr", BR (3, 0, 0, 1, MOD_RRBS)},
00337 {"br.wtop.sptk.clr", BR (3, 0, 0, 1, PSEUDO | MOD_RRBS)},
00338 {"br.wtop.spnt.few", BR (3, 0, 1, 0, MOD_RRBS)},
00339 {"br.wtop.spnt", BR (3, 0, 1, 0, PSEUDO | MOD_RRBS)},
00340 {"br.wtop.spnt.few.clr", BR (3, 0, 1, 1, MOD_RRBS)},
00341 {"br.wtop.spnt.clr", BR (3, 0, 1, 1, PSEUDO | MOD_RRBS)},
00342 {"br.wtop.dptk.few", BR (3, 0, 2, 0, MOD_RRBS)},
00343 {"br.wtop.dptk", BR (3, 0, 2, 0, PSEUDO | MOD_RRBS)},
00344 {"br.wtop.dptk.few.clr", BR (3, 0, 2, 1, MOD_RRBS)},
00345 {"br.wtop.dptk.clr", BR (3, 0, 2, 1, PSEUDO | MOD_RRBS)},
00346 {"br.wtop.dpnt.few", BR (3, 0, 3, 0, MOD_RRBS)},
00347 {"br.wtop.dpnt", BR (3, 0, 3, 0, PSEUDO | MOD_RRBS)},
00348 {"br.wtop.dpnt.few.clr", BR (3, 0, 3, 1, MOD_RRBS)},
00349 {"br.wtop.dpnt.clr", BR (3, 0, 3, 1, PSEUDO | MOD_RRBS)},
00350 {"br.wtop.sptk.many", BR (3, 1, 0, 0, MOD_RRBS)},
00351 {"br.wtop.sptk.many.clr", BR (3, 1, 0, 1, MOD_RRBS)},
00352 {"br.wtop.spnt.many", BR (3, 1, 1, 0, MOD_RRBS)},
00353 {"br.wtop.spnt.many.clr", BR (3, 1, 1, 1, MOD_RRBS)},
00354 {"br.wtop.dptk.many", BR (3, 1, 2, 0, MOD_RRBS)},
00355 {"br.wtop.dptk.many.clr", BR (3, 1, 2, 1, MOD_RRBS)},
00356 {"br.wtop.dpnt.many", BR (3, 1, 3, 0, MOD_RRBS)},
00357 {"br.wtop.dpnt.many.clr", BR (3, 1, 3, 1, MOD_RRBS)},
00358
00359 #undef BR
00360 #define BR(a,b,c,d) \
00361 B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED, 0, NULL
00362 #define BRT(a,b,c,d,e) \
00363 B0, OpBtypePaWhaD (4, a, b, c, d), {TGT25c}, SLOT2 | NO_PRED | e, 0, NULL
00364 {"br.cloop.sptk.few", BR (5, 0, 0, 0)},
00365 {"br.cloop.sptk", BRT (5, 0, 0, 0, PSEUDO)},
00366 {"br.cloop.sptk.few.clr", BR (5, 0, 0, 1)},
00367 {"br.cloop.sptk.clr", BRT (5, 0, 0, 1, PSEUDO)},
00368 {"br.cloop.spnt.few", BR (5, 0, 1, 0)},
00369 {"br.cloop.spnt", BRT (5, 0, 1, 0, PSEUDO)},
00370 {"br.cloop.spnt.few.clr", BR (5, 0, 1, 1)},
00371 {"br.cloop.spnt.clr", BRT (5, 0, 1, 1, PSEUDO)},
00372 {"br.cloop.dptk.few", BR (5, 0, 2, 0)},
00373 {"br.cloop.dptk", BRT (5, 0, 2, 0, PSEUDO)},
00374 {"br.cloop.dptk.few.clr", BR (5, 0, 2, 1)},
00375 {"br.cloop.dptk.clr", BRT (5, 0, 2, 1, PSEUDO)},
00376 {"br.cloop.dpnt.few", BR (5, 0, 3, 0)},
00377 {"br.cloop.dpnt", BRT (5, 0, 3, 0, PSEUDO)},
00378 {"br.cloop.dpnt.few.clr", BR (5, 0, 3, 1)},
00379 {"br.cloop.dpnt.clr", BRT (5, 0, 3, 1, PSEUDO)},
00380 {"br.cloop.sptk.many", BR (5, 1, 0, 0)},
00381 {"br.cloop.sptk.many.clr", BR (5, 1, 0, 1)},
00382 {"br.cloop.spnt.many", BR (5, 1, 1, 0)},
00383 {"br.cloop.spnt.many.clr", BR (5, 1, 1, 1)},
00384 {"br.cloop.dptk.many", BR (5, 1, 2, 0)},
00385 {"br.cloop.dptk.many.clr", BR (5, 1, 2, 1)},
00386 {"br.cloop.dpnt.many", BR (5, 1, 3, 0)},
00387 {"br.cloop.dpnt.many.clr", BR (5, 1, 3, 1)},
00388 {"br.cexit.sptk.few", BRT (6, 0, 0, 0, MOD_RRBS)},
00389 {"br.cexit.sptk", BRT (6, 0, 0, 0, PSEUDO | MOD_RRBS)},
00390 {"br.cexit.sptk.few.clr", BRT (6, 0, 0, 1, MOD_RRBS)},
00391 {"br.cexit.sptk.clr", BRT (6, 0, 0, 1, PSEUDO | MOD_RRBS)},
00392 {"br.cexit.spnt.few", BRT (6, 0, 1, 0, MOD_RRBS)},
00393 {"br.cexit.spnt", BRT (6, 0, 1, 0, PSEUDO | MOD_RRBS)},
00394 {"br.cexit.spnt.few.clr", BRT (6, 0, 1, 1, MOD_RRBS)},
00395 {"br.cexit.spnt.clr", BRT (6, 0, 1, 1, PSEUDO | MOD_RRBS)},
00396 {"br.cexit.dptk.few", BRT (6, 0, 2, 0, MOD_RRBS)},
00397 {"br.cexit.dptk", BRT (6, 0, 2, 0, PSEUDO | MOD_RRBS)},
00398 {"br.cexit.dptk.few.clr", BRT (6, 0, 2, 1, MOD_RRBS)},
00399 {"br.cexit.dptk.clr", BRT (6, 0, 2, 1, PSEUDO | MOD_RRBS)},
00400 {"br.cexit.dpnt.few", BRT (6, 0, 3, 0, MOD_RRBS)},
00401 {"br.cexit.dpnt", BRT (6, 0, 3, 0, PSEUDO | MOD_RRBS)},
00402 {"br.cexit.dpnt.few.clr", BRT (6, 0, 3, 1, MOD_RRBS)},
00403 {"br.cexit.dpnt.clr", BRT (6, 0, 3, 1, PSEUDO | MOD_RRBS)},
00404 {"br.cexit.sptk.many", BRT (6, 1, 0, 0, MOD_RRBS)},
00405 {"br.cexit.sptk.many.clr", BRT (6, 1, 0, 1, MOD_RRBS)},
00406 {"br.cexit.spnt.many", BRT (6, 1, 1, 0, MOD_RRBS)},
00407 {"br.cexit.spnt.many.clr", BRT (6, 1, 1, 1, MOD_RRBS)},
00408 {"br.cexit.dptk.many", BRT (6, 1, 2, 0, MOD_RRBS)},
00409 {"br.cexit.dptk.many.clr", BRT (6, 1, 2, 1, MOD_RRBS)},
00410 {"br.cexit.dpnt.many", BRT (6, 1, 3, 0, MOD_RRBS)},
00411 {"br.cexit.dpnt.many.clr", BRT (6, 1, 3, 1, MOD_RRBS)},
00412 {"br.ctop.sptk.few", BRT (7, 0, 0, 0, MOD_RRBS)},
00413 {"br.ctop.sptk", BRT (7, 0, 0, 0, PSEUDO | MOD_RRBS)},
00414 {"br.ctop.sptk.few.clr", BRT (7, 0, 0, 1, MOD_RRBS)},
00415 {"br.ctop.sptk.clr", BRT (7, 0, 0, 1, PSEUDO | MOD_RRBS)},
00416 {"br.ctop.spnt.few", BRT (7, 0, 1, 0, MOD_RRBS)},
00417 {"br.ctop.spnt", BRT (7, 0, 1, 0, PSEUDO | MOD_RRBS)},
00418 {"br.ctop.spnt.few.clr", BRT (7, 0, 1, 1, MOD_RRBS)},
00419 {"br.ctop.spnt.clr", BRT (7, 0, 1, 1, PSEUDO | MOD_RRBS)},
00420 {"br.ctop.dptk.few", BRT (7, 0, 2, 0, MOD_RRBS)},
00421 {"br.ctop.dptk", BRT (7, 0, 2, 0, PSEUDO | MOD_RRBS)},
00422 {"br.ctop.dptk.few.clr", BRT (7, 0, 2, 1, MOD_RRBS)},
00423 {"br.ctop.dptk.clr", BRT (7, 0, 2, 1, PSEUDO | MOD_RRBS)},
00424 {"br.ctop.dpnt.few", BRT (7, 0, 3, 0, MOD_RRBS)},
00425 {"br.ctop.dpnt", BRT (7, 0, 3, 0, PSEUDO | MOD_RRBS)},
00426 {"br.ctop.dpnt.few.clr", BRT (7, 0, 3, 1, MOD_RRBS)},
00427 {"br.ctop.dpnt.clr", BRT (7, 0, 3, 1, PSEUDO | MOD_RRBS)},
00428 {"br.ctop.sptk.many", BRT (7, 1, 0, 0, MOD_RRBS)},
00429 {"br.ctop.sptk.many.clr", BRT (7, 1, 0, 1, MOD_RRBS)},
00430 {"br.ctop.spnt.many", BRT (7, 1, 1, 0, MOD_RRBS)},
00431 {"br.ctop.spnt.many.clr", BRT (7, 1, 1, 1, MOD_RRBS)},
00432 {"br.ctop.dptk.many", BRT (7, 1, 2, 0, MOD_RRBS)},
00433 {"br.ctop.dptk.many.clr", BRT (7, 1, 2, 1, MOD_RRBS)},
00434 {"br.ctop.dpnt.many", BRT (7, 1, 3, 0, MOD_RRBS)},
00435 {"br.ctop.dpnt.many.clr", BRT (7, 1, 3, 1, MOD_RRBS)},
00436 #undef BR
00437 #undef BRT
00438
00439 {"br.call.sptk.few", B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, EMPTY},
00440 {"br.call.sptk", B, OpPaWhaD (5, 0, 0, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
00441 {"br.call.sptk.few.clr", B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, EMPTY},
00442 {"br.call.sptk.clr", B, OpPaWhaD (5, 0, 0, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
00443 {"br.call.spnt.few", B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, EMPTY},
00444 {"br.call.spnt", B, OpPaWhaD (5, 0, 1, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
00445 {"br.call.spnt.few.clr", B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, EMPTY},
00446 {"br.call.spnt.clr", B, OpPaWhaD (5, 0, 1, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
00447 {"br.call.dptk.few", B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, EMPTY},
00448 {"br.call.dptk", B, OpPaWhaD (5, 0, 2, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
00449 {"br.call.dptk.few.clr", B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, EMPTY},
00450 {"br.call.dptk.clr", B, OpPaWhaD (5, 0, 2, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
00451 {"br.call.dpnt.few", B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, EMPTY},
00452 {"br.call.dpnt", B, OpPaWhaD (5, 0, 3, 0), {B1, TGT25c}, PSEUDO, 0, NULL},
00453 {"br.call.dpnt.few.clr", B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, EMPTY},
00454 {"br.call.dpnt.clr", B, OpPaWhaD (5, 0, 3, 1), {B1, TGT25c}, PSEUDO, 0, NULL},
00455 {"br.call.sptk.many", B, OpPaWhaD (5, 1, 0, 0), {B1, TGT25c}, EMPTY},
00456 {"br.call.sptk.many.clr", B, OpPaWhaD (5, 1, 0, 1), {B1, TGT25c}, EMPTY},
00457 {"br.call.spnt.many", B, OpPaWhaD (5, 1, 1, 0), {B1, TGT25c}, EMPTY},
00458 {"br.call.spnt.many.clr", B, OpPaWhaD (5, 1, 1, 1), {B1, TGT25c}, EMPTY},
00459 {"br.call.dptk.many", B, OpPaWhaD (5, 1, 2, 0), {B1, TGT25c}, EMPTY},
00460 {"br.call.dptk.many.clr", B, OpPaWhaD (5, 1, 2, 1), {B1, TGT25c}, EMPTY},
00461 {"br.call.dpnt.many", B, OpPaWhaD (5, 1, 3, 0), {B1, TGT25c}, EMPTY},
00462 {"br.call.dpnt.many.clr", B, OpPaWhaD (5, 1, 3, 1), {B1, TGT25c}, EMPTY},
00463
00464
00465 #define BRP(a,b) \
00466 B0, OpIhWhb (7, a, b), {TGT25c, TAG13}, NO_PRED, 0, NULL
00467 {"brp.sptk", BRP (0, 0)},
00468 {"brp.loop", BRP (0, 1)},
00469 {"brp.dptk", BRP (0, 2)},
00470 {"brp.exit", BRP (0, 3)},
00471 {"brp.sptk.imp", BRP (1, 0)},
00472 {"brp.loop.imp", BRP (1, 1)},
00473 {"brp.dptk.imp", BRP (1, 2)},
00474 {"brp.exit.imp", BRP (1, 3)},
00475 #undef BRP
00476
00477 {NULL, 0, 0, 0, 0, {0}, 0, 0, NULL}
00478 };
00479
00480 #undef B0
00481 #undef B
00482 #undef bBtype
00483 #undef bD
00484 #undef bIh
00485 #undef bPa
00486 #undef bPr
00487 #undef bWha
00488 #undef bWhb
00489 #undef bWhc
00490 #undef bX6
00491 #undef mBtype
00492 #undef mD
00493 #undef mIh
00494 #undef mPa
00495 #undef mPr
00496 #undef mWha
00497 #undef mWhb
00498 #undef mWhc
00499 #undef mX6
00500 #undef OpX6
00501 #undef OpPaWhaD
00502 #undef OpPaWhcD
00503 #undef OpBtypePaWhaD
00504 #undef OpBtypePaWhaDPr
00505 #undef OpX6BtypePaWhaD
00506 #undef OpX6BtypePaWhaDPr
00507 #undef OpIhWhb
00508 #undef OpX6IhWhb
00509 #undef EMPTY