00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "sysdep.h"
00030 #include "ansidecl.h"
00031 #include "bfd.h"
00032 #include "symcat.h"
00033 #include "iq2000-desc.h"
00034 #include "iq2000-opc.h"
00035 #include "libiberty.h"
00036
00037
00038
00039
00040 static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
00041 static unsigned int asm_hash_insn PARAMS ((const char *));
00042 static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
00043 static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
00044
00045
00046
00047 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
00048 #define F(f) & iq2000_cgen_ifld_table[IQ2000_##f]
00049 #else
00050 #define F(f) & iq2000_cgen_ifld_table[IQ2000_f]
00051 #endif
00052 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
00053 0, 0, 0x0, { { 0 } }
00054 };
00055
00056 static const CGEN_IFMT ifmt_add2 ATTRIBUTE_UNUSED = {
00057 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00058 };
00059
00060 static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
00061 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00062 };
00063
00064 static const CGEN_IFMT ifmt_addi2 ATTRIBUTE_UNUSED = {
00065 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
00066 };
00067
00068 static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
00069 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
00070 };
00071
00072 static const CGEN_IFMT ifmt_ram ATTRIBUTE_UNUSED = {
00073 32, 32, 0xfc000020, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_5) }, { F (F_MASKL) }, { 0 } }
00074 };
00075
00076 static const CGEN_IFMT ifmt_sll ATTRIBUTE_UNUSED = {
00077 32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00078 };
00079
00080 static const CGEN_IFMT ifmt_sllv2 ATTRIBUTE_UNUSED = {
00081 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00082 };
00083
00084 static const CGEN_IFMT ifmt_slmv2 ATTRIBUTE_UNUSED = {
00085 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00086 };
00087
00088 static const CGEN_IFMT ifmt_slmv ATTRIBUTE_UNUSED = {
00089 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00090 };
00091
00092 static const CGEN_IFMT ifmt_slti2 ATTRIBUTE_UNUSED = {
00093 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
00094 };
00095
00096 static const CGEN_IFMT ifmt_slti ATTRIBUTE_UNUSED = {
00097 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
00098 };
00099
00100 static const CGEN_IFMT ifmt_sra2 ATTRIBUTE_UNUSED = {
00101 32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00102 };
00103
00104 static const CGEN_IFMT ifmt_bbi ATTRIBUTE_UNUSED = {
00105 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
00106 };
00107
00108 static const CGEN_IFMT ifmt_bbv ATTRIBUTE_UNUSED = {
00109 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
00110 };
00111
00112 static const CGEN_IFMT ifmt_bgez ATTRIBUTE_UNUSED = {
00113 32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
00114 };
00115
00116 static const CGEN_IFMT ifmt_jalr ATTRIBUTE_UNUSED = {
00117 32, 32, 0xfc1f07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00118 };
00119
00120 static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
00121 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00122 };
00123
00124 static const CGEN_IFMT ifmt_lb ATTRIBUTE_UNUSED = {
00125 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
00126 };
00127
00128 static const CGEN_IFMT ifmt_lui ATTRIBUTE_UNUSED = {
00129 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
00130 };
00131
00132 static const CGEN_IFMT ifmt_break ATTRIBUTE_UNUSED = {
00133 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00134 };
00135
00136 static const CGEN_IFMT ifmt_syscall ATTRIBUTE_UNUSED = {
00137 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_EXCODE) }, { F (F_FUNC) }, { 0 } }
00138 };
00139
00140 static const CGEN_IFMT ifmt_andoui ATTRIBUTE_UNUSED = {
00141 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
00142 };
00143
00144 static const CGEN_IFMT ifmt_andoui2 ATTRIBUTE_UNUSED = {
00145 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
00146 };
00147
00148 static const CGEN_IFMT ifmt_mrgb ATTRIBUTE_UNUSED = {
00149 32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } }
00150 };
00151
00152 static const CGEN_IFMT ifmt_mrgb2 ATTRIBUTE_UNUSED = {
00153 32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } }
00154 };
00155
00156 static const CGEN_IFMT ifmt_bc0f ATTRIBUTE_UNUSED = {
00157 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
00158 };
00159
00160 static const CGEN_IFMT ifmt_cfc0 ATTRIBUTE_UNUSED = {
00161 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10_11) }, { 0 } }
00162 };
00163
00164 static const CGEN_IFMT ifmt_chkhdr ATTRIBUTE_UNUSED = {
00165 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00166 };
00167
00168 static const CGEN_IFMT ifmt_lulck ATTRIBUTE_UNUSED = {
00169 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00170 };
00171
00172 static const CGEN_IFMT ifmt_pkrlr1 ATTRIBUTE_UNUSED = {
00173 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_COUNT) }, { F (F_INDEX) }, { 0 } }
00174 };
00175
00176 static const CGEN_IFMT ifmt_rfe ATTRIBUTE_UNUSED = {
00177 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_25) }, { F (F_24_19) }, { F (F_FUNC) }, { 0 } }
00178 };
00179
00180 static const CGEN_IFMT ifmt_j ATTRIBUTE_UNUSED = {
00181 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RSRVD) }, { F (F_JTARG) }, { 0 } }
00182 };
00183
00184 static const CGEN_IFMT ifmt_mrgbq10 ATTRIBUTE_UNUSED = {
00185 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } }
00186 };
00187
00188 static const CGEN_IFMT ifmt_mrgbq102 ATTRIBUTE_UNUSED = {
00189 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } }
00190 };
00191
00192 static const CGEN_IFMT ifmt_jq10 ATTRIBUTE_UNUSED = {
00193 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } }
00194 };
00195
00196 static const CGEN_IFMT ifmt_jalq10 ATTRIBUTE_UNUSED = {
00197 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } }
00198 };
00199
00200 static const CGEN_IFMT ifmt_avail ATTRIBUTE_UNUSED = {
00201 32, 32, 0xffff07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00202 };
00203
00204 static const CGEN_IFMT ifmt_rbi ATTRIBUTE_UNUSED = {
00205 32, 32, 0xfc000700, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
00206 };
00207
00208 static const CGEN_IFMT ifmt_cam36 ATTRIBUTE_UNUSED = {
00209 32, 32, 0xffe007c0, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
00210 };
00211
00212 static const CGEN_IFMT ifmt_cm32and ATTRIBUTE_UNUSED = {
00213 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
00214 };
00215
00216 static const CGEN_IFMT ifmt_cm32rd ATTRIBUTE_UNUSED = {
00217 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
00218 };
00219
00220 static const CGEN_IFMT ifmt_cm128ria3 ATTRIBUTE_UNUSED = {
00221 32, 32, 0xfc0007fc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
00222 };
00223
00224 static const CGEN_IFMT ifmt_cm128ria4 ATTRIBUTE_UNUSED = {
00225 32, 32, 0xfc0007f8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
00226 };
00227
00228 static const CGEN_IFMT ifmt_ctc ATTRIBUTE_UNUSED = {
00229 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
00230 };
00231
00232 #undef F
00233
00234 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
00235 #define A(a) (1 << CGEN_INSN_##a)
00236 #else
00237 #define A(a) (1 << CGEN_INSN_a)
00238 #endif
00239 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
00240 #define OPERAND(op) IQ2000_OPERAND_##op
00241 #else
00242 #define OPERAND(op) IQ2000_OPERAND_op
00243 #endif
00244 #define MNEM CGEN_SYNTAX_MNEMONIC
00245 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
00246
00247
00248
00249 static const CGEN_OPCODE iq2000_cgen_insn_opcode_table[MAX_INSNS] =
00250 {
00251
00252
00253
00254 { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
00255
00256 {
00257 { 0, 0, 0, 0 },
00258 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00259 & ifmt_add2, { 0x20 }
00260 },
00261
00262 {
00263 { 0, 0, 0, 0 },
00264 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00265 & ifmt_add, { 0x20 }
00266 },
00267
00268 {
00269 { 0, 0, 0, 0 },
00270 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00271 & ifmt_addi2, { 0x20000000 }
00272 },
00273
00274 {
00275 { 0, 0, 0, 0 },
00276 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00277 & ifmt_addi, { 0x20000000 }
00278 },
00279
00280 {
00281 { 0, 0, 0, 0 },
00282 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00283 & ifmt_addi2, { 0x24000000 }
00284 },
00285
00286 {
00287 { 0, 0, 0, 0 },
00288 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00289 & ifmt_addi, { 0x24000000 }
00290 },
00291
00292 {
00293 { 0, 0, 0, 0 },
00294 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00295 & ifmt_add2, { 0x21 }
00296 },
00297
00298 {
00299 { 0, 0, 0, 0 },
00300 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00301 & ifmt_add, { 0x21 }
00302 },
00303
00304 {
00305 { 0, 0, 0, 0 },
00306 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00307 & ifmt_add2, { 0x29 }
00308 },
00309
00310 {
00311 { 0, 0, 0, 0 },
00312 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00313 & ifmt_add, { 0x29 }
00314 },
00315
00316 {
00317 { 0, 0, 0, 0 },
00318 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00319 & ifmt_add2, { 0x24 }
00320 },
00321
00322 {
00323 { 0, 0, 0, 0 },
00324 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00325 & ifmt_add, { 0x24 }
00326 },
00327
00328 {
00329 { 0, 0, 0, 0 },
00330 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00331 & ifmt_addi2, { 0x30000000 }
00332 },
00333
00334 {
00335 { 0, 0, 0, 0 },
00336 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00337 & ifmt_addi, { 0x30000000 }
00338 },
00339
00340 {
00341 { 0, 0, 0, 0 },
00342 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00343 & ifmt_addi2, { 0xb0000000 }
00344 },
00345
00346 {
00347 { 0, 0, 0, 0 },
00348 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00349 & ifmt_addi, { 0xb0000000 }
00350 },
00351
00352 {
00353 { 0, 0, 0, 0 },
00354 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00355 & ifmt_add2, { 0x27 }
00356 },
00357
00358 {
00359 { 0, 0, 0, 0 },
00360 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00361 & ifmt_add, { 0x27 }
00362 },
00363
00364 {
00365 { 0, 0, 0, 0 },
00366 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00367 & ifmt_add2, { 0x25 }
00368 },
00369
00370 {
00371 { 0, 0, 0, 0 },
00372 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00373 & ifmt_add, { 0x25 }
00374 },
00375
00376 {
00377 { 0, 0, 0, 0 },
00378 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00379 & ifmt_addi2, { 0x34000000 }
00380 },
00381
00382 {
00383 { 0, 0, 0, 0 },
00384 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00385 & ifmt_addi, { 0x34000000 }
00386 },
00387
00388 {
00389 { 0, 0, 0, 0 },
00390 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), ',', OP (MASKL), ',', OP (MASKR), 0 } },
00391 & ifmt_ram, { 0x9c000000 }
00392 },
00393
00394 {
00395 { 0, 0, 0, 0 },
00396 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
00397 & ifmt_sll, { 0x0 }
00398 },
00399
00400 {
00401 { 0, 0, 0, 0 },
00402 { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
00403 & ifmt_sllv2, { 0x4 }
00404 },
00405
00406 {
00407 { 0, 0, 0, 0 },
00408 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
00409 & ifmt_add, { 0x4 }
00410 },
00411
00412 {
00413 { 0, 0, 0, 0 },
00414 { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
00415 & ifmt_slmv2, { 0x1 }
00416 },
00417
00418 {
00419 { 0, 0, 0, 0 },
00420 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
00421 & ifmt_slmv, { 0x1 }
00422 },
00423
00424 {
00425 { 0, 0, 0, 0 },
00426 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00427 & ifmt_add2, { 0x2a }
00428 },
00429
00430 {
00431 { 0, 0, 0, 0 },
00432 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00433 & ifmt_add, { 0x2a }
00434 },
00435
00436 {
00437 { 0, 0, 0, 0 },
00438 { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } },
00439 & ifmt_slti2, { 0x28000000 }
00440 },
00441
00442 {
00443 { 0, 0, 0, 0 },
00444 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
00445 & ifmt_slti, { 0x28000000 }
00446 },
00447
00448 {
00449 { 0, 0, 0, 0 },
00450 { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } },
00451 & ifmt_slti2, { 0x2c000000 }
00452 },
00453
00454 {
00455 { 0, 0, 0, 0 },
00456 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
00457 & ifmt_slti, { 0x2c000000 }
00458 },
00459
00460 {
00461 { 0, 0, 0, 0 },
00462 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00463 & ifmt_add2, { 0x2b }
00464 },
00465
00466 {
00467 { 0, 0, 0, 0 },
00468 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00469 & ifmt_add, { 0x2b }
00470 },
00471
00472 {
00473 { 0, 0, 0, 0 },
00474 { { MNEM, ' ', OP (RD_RT), ',', OP (SHAMT), 0 } },
00475 & ifmt_sra2, { 0x3 }
00476 },
00477
00478 {
00479 { 0, 0, 0, 0 },
00480 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
00481 & ifmt_sll, { 0x3 }
00482 },
00483
00484 {
00485 { 0, 0, 0, 0 },
00486 { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
00487 & ifmt_sllv2, { 0x7 }
00488 },
00489
00490 {
00491 { 0, 0, 0, 0 },
00492 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
00493 & ifmt_add, { 0x7 }
00494 },
00495
00496 {
00497 { 0, 0, 0, 0 },
00498 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
00499 & ifmt_sll, { 0x2 }
00500 },
00501
00502 {
00503 { 0, 0, 0, 0 },
00504 { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
00505 & ifmt_sllv2, { 0x6 }
00506 },
00507
00508 {
00509 { 0, 0, 0, 0 },
00510 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
00511 & ifmt_add, { 0x6 }
00512 },
00513
00514 {
00515 { 0, 0, 0, 0 },
00516 { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
00517 & ifmt_slmv2, { 0x5 }
00518 },
00519
00520 {
00521 { 0, 0, 0, 0 },
00522 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
00523 & ifmt_slmv, { 0x5 }
00524 },
00525
00526 {
00527 { 0, 0, 0, 0 },
00528 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00529 & ifmt_add2, { 0x22 }
00530 },
00531
00532 {
00533 { 0, 0, 0, 0 },
00534 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00535 & ifmt_add, { 0x22 }
00536 },
00537
00538 {
00539 { 0, 0, 0, 0 },
00540 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00541 & ifmt_add2, { 0x23 }
00542 },
00543
00544 {
00545 { 0, 0, 0, 0 },
00546 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00547 & ifmt_add, { 0x23 }
00548 },
00549
00550 {
00551 { 0, 0, 0, 0 },
00552 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
00553 & ifmt_add2, { 0x26 }
00554 },
00555
00556 {
00557 { 0, 0, 0, 0 },
00558 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
00559 & ifmt_add, { 0x26 }
00560 },
00561
00562 {
00563 { 0, 0, 0, 0 },
00564 { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
00565 & ifmt_addi2, { 0x38000000 }
00566 },
00567
00568 {
00569 { 0, 0, 0, 0 },
00570 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
00571 & ifmt_addi, { 0x38000000 }
00572 },
00573
00574 {
00575 { 0, 0, 0, 0 },
00576 { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
00577 & ifmt_bbi, { 0x70000000 }
00578 },
00579
00580 {
00581 { 0, 0, 0, 0 },
00582 { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
00583 & ifmt_bbi, { 0x78000000 }
00584 },
00585
00586 {
00587 { 0, 0, 0, 0 },
00588 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00589 & ifmt_bbv, { 0x74000000 }
00590 },
00591
00592 {
00593 { 0, 0, 0, 0 },
00594 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00595 & ifmt_bbv, { 0x7c000000 }
00596 },
00597
00598 {
00599 { 0, 0, 0, 0 },
00600 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00601 & ifmt_bbv, { 0x10000000 }
00602 },
00603
00604 {
00605 { 0, 0, 0, 0 },
00606 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00607 & ifmt_bbv, { 0x50000000 }
00608 },
00609
00610 {
00611 { 0, 0, 0, 0 },
00612 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00613 & ifmt_bgez, { 0x4010000 }
00614 },
00615
00616 {
00617 { 0, 0, 0, 0 },
00618 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00619 & ifmt_bgez, { 0x4110000 }
00620 },
00621
00622 {
00623 { 0, 0, 0, 0 },
00624 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00625 & ifmt_bgez, { 0x4130000 }
00626 },
00627
00628 {
00629 { 0, 0, 0, 0 },
00630 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00631 & ifmt_bgez, { 0x4030000 }
00632 },
00633
00634 {
00635 { 0, 0, 0, 0 },
00636 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00637 & ifmt_bgez, { 0x4000000 }
00638 },
00639
00640 {
00641 { 0, 0, 0, 0 },
00642 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00643 & ifmt_bgez, { 0x4020000 }
00644 },
00645
00646 {
00647 { 0, 0, 0, 0 },
00648 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00649 & ifmt_bgez, { 0x4100000 }
00650 },
00651
00652 {
00653 { 0, 0, 0, 0 },
00654 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00655 & ifmt_bgez, { 0x4120000 }
00656 },
00657
00658 {
00659 { 0, 0, 0, 0 },
00660 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00661 & ifmt_bbv, { 0x60000000 }
00662 },
00663
00664 {
00665 { 0, 0, 0, 0 },
00666 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00667 & ifmt_bbv, { 0x64000000 }
00668 },
00669
00670 {
00671 { 0, 0, 0, 0 },
00672 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00673 & ifmt_bbv, { 0x68000000 }
00674 },
00675
00676 {
00677 { 0, 0, 0, 0 },
00678 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00679 & ifmt_bbv, { 0x6c000000 }
00680 },
00681
00682 {
00683 { 0, 0, 0, 0 },
00684 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00685 & ifmt_bbv, { 0x14000000 }
00686 },
00687
00688 {
00689 { 0, 0, 0, 0 },
00690 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
00691 & ifmt_bbv, { 0x54000000 }
00692 },
00693
00694 {
00695 { 0, 0, 0, 0 },
00696 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
00697 & ifmt_jalr, { 0x9 }
00698 },
00699
00700 {
00701 { 0, 0, 0, 0 },
00702 { { MNEM, ' ', OP (RS), 0 } },
00703 & ifmt_jr, { 0x8 }
00704 },
00705
00706 {
00707 { 0, 0, 0, 0 },
00708 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00709 & ifmt_lb, { 0x80000000 }
00710 },
00711
00712 {
00713 { 0, 0, 0, 0 },
00714 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00715 & ifmt_lb, { 0x90000000 }
00716 },
00717
00718 {
00719 { 0, 0, 0, 0 },
00720 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00721 & ifmt_lb, { 0x84000000 }
00722 },
00723
00724 {
00725 { 0, 0, 0, 0 },
00726 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00727 & ifmt_lb, { 0x94000000 }
00728 },
00729
00730 {
00731 { 0, 0, 0, 0 },
00732 { { MNEM, ' ', OP (RT), ',', OP (HI16), 0 } },
00733 & ifmt_lui, { 0x3c000000 }
00734 },
00735
00736 {
00737 { 0, 0, 0, 0 },
00738 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00739 & ifmt_lb, { 0x8c000000 }
00740 },
00741
00742 {
00743 { 0, 0, 0, 0 },
00744 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00745 & ifmt_lb, { 0xa0000000 }
00746 },
00747
00748 {
00749 { 0, 0, 0, 0 },
00750 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00751 & ifmt_lb, { 0xa4000000 }
00752 },
00753
00754 {
00755 { 0, 0, 0, 0 },
00756 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
00757 & ifmt_lb, { 0xac000000 }
00758 },
00759
00760 {
00761 { 0, 0, 0, 0 },
00762 { { MNEM, 0 } },
00763 & ifmt_break, { 0xd }
00764 },
00765
00766 {
00767 { 0, 0, 0, 0 },
00768 { { MNEM, 0 } },
00769 & ifmt_syscall, { 0xc }
00770 },
00771
00772 {
00773 { 0, 0, 0, 0 },
00774 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
00775 & ifmt_andoui, { 0xfc000000 }
00776 },
00777
00778 {
00779 { 0, 0, 0, 0 },
00780 { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
00781 & ifmt_andoui2, { 0xfc000000 }
00782 },
00783
00784 {
00785 { 0, 0, 0, 0 },
00786 { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
00787 & ifmt_andoui2, { 0xbc000000 }
00788 },
00789
00790 {
00791 { 0, 0, 0, 0 },
00792 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
00793 & ifmt_andoui, { 0xbc000000 }
00794 },
00795
00796 {
00797 { 0, 0, 0, 0 },
00798 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00799 & ifmt_bgez, { 0x1c000000 }
00800 },
00801
00802 {
00803 { 0, 0, 0, 0 },
00804 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00805 & ifmt_bgez, { 0x5c000000 }
00806 },
00807
00808 {
00809 { 0, 0, 0, 0 },
00810 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00811 & ifmt_bgez, { 0x18000000 }
00812 },
00813
00814 {
00815 { 0, 0, 0, 0 },
00816 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00817 & ifmt_bgez, { 0x58000000 }
00818 },
00819
00820 {
00821 { 0, 0, 0, 0 },
00822 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASK), 0 } },
00823 & ifmt_mrgb, { 0x2d }
00824 },
00825
00826 {
00827 { 0, 0, 0, 0 },
00828 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASK), 0 } },
00829 & ifmt_mrgb2, { 0x2d }
00830 },
00831
00832 {
00833 { 0, 0, 0, 0 },
00834 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
00835 & ifmt_bgez, { 0x4060000 }
00836 },
00837
00838 {
00839 { 0, 0, 0, 0 },
00840 { { MNEM, ' ', OP (OFFSET), 0 } },
00841 & ifmt_bc0f, { 0x41000000 }
00842 },
00843
00844 {
00845 { 0, 0, 0, 0 },
00846 { { MNEM, ' ', OP (OFFSET), 0 } },
00847 & ifmt_bc0f, { 0x41020000 }
00848 },
00849
00850 {
00851 { 0, 0, 0, 0 },
00852 { { MNEM, ' ', OP (OFFSET), 0 } },
00853 & ifmt_bc0f, { 0x4d000000 }
00854 },
00855
00856 {
00857 { 0, 0, 0, 0 },
00858 { { MNEM, ' ', OP (OFFSET), 0 } },
00859 & ifmt_bc0f, { 0x4d020000 }
00860 },
00861
00862 {
00863 { 0, 0, 0, 0 },
00864 { { MNEM, ' ', OP (OFFSET), 0 } },
00865 & ifmt_bc0f, { 0x41010000 }
00866 },
00867
00868 {
00869 { 0, 0, 0, 0 },
00870 { { MNEM, ' ', OP (OFFSET), 0 } },
00871 & ifmt_bc0f, { 0x41030000 }
00872 },
00873
00874 {
00875 { 0, 0, 0, 0 },
00876 { { MNEM, ' ', OP (OFFSET), 0 } },
00877 & ifmt_bc0f, { 0x4d010000 }
00878 },
00879
00880 {
00881 { 0, 0, 0, 0 },
00882 { { MNEM, ' ', OP (OFFSET), 0 } },
00883 & ifmt_bc0f, { 0x4d030000 }
00884 },
00885
00886 {
00887 { 0, 0, 0, 0 },
00888 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00889 & ifmt_cfc0, { 0x40400000 }
00890 },
00891
00892 {
00893 { 0, 0, 0, 0 },
00894 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00895 & ifmt_cfc0, { 0x44400000 }
00896 },
00897
00898 {
00899 { 0, 0, 0, 0 },
00900 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00901 & ifmt_cfc0, { 0x48400000 }
00902 },
00903
00904 {
00905 { 0, 0, 0, 0 },
00906 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00907 & ifmt_cfc0, { 0x4c400000 }
00908 },
00909
00910 {
00911 { 0, 0, 0, 0 },
00912 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
00913 & ifmt_chkhdr, { 0x4d200000 }
00914 },
00915
00916 {
00917 { 0, 0, 0, 0 },
00918 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00919 & ifmt_cfc0, { 0x40c00000 }
00920 },
00921
00922 {
00923 { 0, 0, 0, 0 },
00924 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00925 & ifmt_cfc0, { 0x44c00000 }
00926 },
00927
00928 {
00929 { 0, 0, 0, 0 },
00930 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00931 & ifmt_cfc0, { 0x48c00000 }
00932 },
00933
00934 {
00935 { 0, 0, 0, 0 },
00936 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00937 & ifmt_cfc0, { 0x4cc00000 }
00938 },
00939
00940 {
00941 { 0, 0, 0, 0 },
00942 { { MNEM, ' ', OP (RS), 0 } },
00943 & ifmt_jr, { 0xa }
00944 },
00945
00946 {
00947 { 0, 0, 0, 0 },
00948 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00949 & ifmt_chkhdr, { 0x48200003 }
00950 },
00951
00952 {
00953 { 0, 0, 0, 0 },
00954 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00955 & ifmt_chkhdr, { 0x48200007 }
00956 },
00957
00958 {
00959 { 0, 0, 0, 0 },
00960 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00961 & ifmt_chkhdr, { 0x4820000b }
00962 },
00963
00964 {
00965 { 0, 0, 0, 0 },
00966 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00967 & ifmt_chkhdr, { 0x4820000f }
00968 },
00969
00970 {
00971 { 0, 0, 0, 0 },
00972 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00973 & ifmt_chkhdr, { 0x48200008 }
00974 },
00975
00976 {
00977 { 0, 0, 0, 0 },
00978 { { MNEM, ' ', OP (RT), 0 } },
00979 & ifmt_lulck, { 0x48200004 }
00980 },
00981
00982 {
00983 { 0, 0, 0, 0 },
00984 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00985 & ifmt_chkhdr, { 0x48200002 }
00986 },
00987
00988 {
00989 { 0, 0, 0, 0 },
00990 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00991 & ifmt_chkhdr, { 0x48200006 }
00992 },
00993
00994 {
00995 { 0, 0, 0, 0 },
00996 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
00997 & ifmt_chkhdr, { 0x4820000a }
00998 },
00999
01000 {
01001 { 0, 0, 0, 0 },
01002 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01003 & ifmt_chkhdr, { 0x4820000e }
01004 },
01005
01006 {
01007 { 0, 0, 0, 0 },
01008 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01009 & ifmt_chkhdr, { 0x48200001 }
01010 },
01011
01012 {
01013 { 0, 0, 0, 0 },
01014 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01015 & ifmt_chkhdr, { 0x48200005 }
01016 },
01017
01018 {
01019 { 0, 0, 0, 0 },
01020 { { MNEM, ' ', OP (RT), 0 } },
01021 & ifmt_lulck, { 0x48200000 }
01022 },
01023
01024 {
01025 { 0, 0, 0, 0 },
01026 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01027 & ifmt_cfc0, { 0x40000000 }
01028 },
01029
01030 {
01031 { 0, 0, 0, 0 },
01032 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01033 & ifmt_cfc0, { 0x44000000 }
01034 },
01035
01036 {
01037 { 0, 0, 0, 0 },
01038 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01039 & ifmt_cfc0, { 0x48000000 }
01040 },
01041
01042 {
01043 { 0, 0, 0, 0 },
01044 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01045 & ifmt_cfc0, { 0x4c000000 }
01046 },
01047
01048 {
01049 { 0, 0, 0, 0 },
01050 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01051 & ifmt_cfc0, { 0x40800000 }
01052 },
01053
01054 {
01055 { 0, 0, 0, 0 },
01056 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01057 & ifmt_cfc0, { 0x44800000 }
01058 },
01059
01060 {
01061 { 0, 0, 0, 0 },
01062 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01063 & ifmt_cfc0, { 0x48800000 }
01064 },
01065
01066 {
01067 { 0, 0, 0, 0 },
01068 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01069 & ifmt_cfc0, { 0x4c800000 }
01070 },
01071
01072 {
01073 { 0, 0, 0, 0 },
01074 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01075 & ifmt_chkhdr, { 0x4c200007 }
01076 },
01077
01078 {
01079 { 0, 0, 0, 0 },
01080 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01081 & ifmt_pkrlr1, { 0x4fa00000 }
01082 },
01083
01084 {
01085 { 0, 0, 0, 0 },
01086 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01087 & ifmt_pkrlr1, { 0x4fe00000 }
01088 },
01089
01090 {
01091 { 0, 0, 0, 0 },
01092 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01093 & ifmt_chkhdr, { 0x4c200004 }
01094 },
01095
01096 {
01097 { 0, 0, 0, 0 },
01098 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01099 & ifmt_pkrlr1, { 0x4f000000 }
01100 },
01101
01102 {
01103 { 0, 0, 0, 0 },
01104 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01105 & ifmt_pkrlr1, { 0x4f400000 }
01106 },
01107
01108 {
01109 { 0, 0, 0, 0 },
01110 { { MNEM, 0 } },
01111 & ifmt_rfe, { 0x42000010 }
01112 },
01113
01114 {
01115 { 0, 0, 0, 0 },
01116 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01117 & ifmt_chkhdr, { 0x4c200006 }
01118 },
01119
01120 {
01121 { 0, 0, 0, 0 },
01122 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01123 & ifmt_pkrlr1, { 0x4f800000 }
01124 },
01125
01126 {
01127 { 0, 0, 0, 0 },
01128 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01129 & ifmt_pkrlr1, { 0x4fc00000 }
01130 },
01131
01132 {
01133 { 0, 0, 0, 0 },
01134 { { MNEM, 0 } },
01135 & ifmt_syscall, { 0xe }
01136 },
01137
01138 {
01139 { 0, 0, 0, 0 },
01140 { { MNEM, ' ', OP (RT), 0 } },
01141 & ifmt_lulck, { 0x48200010 }
01142 },
01143
01144 {
01145 { 0, 0, 0, 0 },
01146 { { MNEM, ' ', OP (RT), 0 } },
01147 & ifmt_lulck, { 0x48200014 }
01148 },
01149
01150 {
01151 { 0, 0, 0, 0 },
01152 { { MNEM, ' ', OP (RT), 0 } },
01153 & ifmt_lulck, { 0x48200016 }
01154 },
01155
01156 {
01157 { 0, 0, 0, 0 },
01158 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01159 & ifmt_chkhdr, { 0x48200011 }
01160 },
01161
01162 {
01163 { 0, 0, 0, 0 },
01164 { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
01165 & ifmt_chkhdr, { 0x48200015 }
01166 },
01167
01168 {
01169 { 0, 0, 0, 0 },
01170 { { MNEM, 0 } },
01171 & ifmt_break, { 0x4c200008 }
01172 },
01173
01174 {
01175 { 0, 0, 0, 0 },
01176 { { MNEM, 0 } },
01177 & ifmt_break, { 0x4c200009 }
01178 },
01179
01180 {
01181 { 0, 0, 0, 0 },
01182 { { MNEM, ' ', OP (RT), 0 } },
01183 & ifmt_lulck, { 0x4c20000a }
01184 },
01185
01186 {
01187 { 0, 0, 0, 0 },
01188 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01189 & ifmt_chkhdr, { 0x4c200000 }
01190 },
01191
01192 {
01193 { 0, 0, 0, 0 },
01194 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01195 & ifmt_chkhdr, { 0x4c200001 }
01196 },
01197
01198 {
01199 { 0, 0, 0, 0 },
01200 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01201 & ifmt_pkrlr1, { 0x4e000000 }
01202 },
01203
01204 {
01205 { 0, 0, 0, 0 },
01206 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01207 & ifmt_pkrlr1, { 0x4e200000 }
01208 },
01209
01210 {
01211 { 0, 0, 0, 0 },
01212 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01213 & ifmt_pkrlr1, { 0x4e400000 }
01214 },
01215
01216 {
01217 { 0, 0, 0, 0 },
01218 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01219 & ifmt_pkrlr1, { 0x4e600000 }
01220 },
01221
01222 {
01223 { 0, 0, 0, 0 },
01224 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01225 & ifmt_chkhdr, { 0x4c200002 }
01226 },
01227
01228 {
01229 { 0, 0, 0, 0 },
01230 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01231 & ifmt_chkhdr, { 0x4c200003 }
01232 },
01233
01234 {
01235 { 0, 0, 0, 0 },
01236 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01237 & ifmt_pkrlr1, { 0x4e800000 }
01238 },
01239
01240 {
01241 { 0, 0, 0, 0 },
01242 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01243 & ifmt_pkrlr1, { 0x4ea00000 }
01244 },
01245
01246 {
01247 { 0, 0, 0, 0 },
01248 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01249 & ifmt_pkrlr1, { 0x4ec00000 }
01250 },
01251
01252 {
01253 { 0, 0, 0, 0 },
01254 { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
01255 & ifmt_pkrlr1, { 0x4ee00000 }
01256 },
01257
01258 {
01259 { 0, 0, 0, 0 },
01260 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
01261 & ifmt_lb, { 0xc0000000 }
01262 },
01263
01264 {
01265 { 0, 0, 0, 0 },
01266 { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
01267 & ifmt_lb, { 0xe0000000 }
01268 },
01269
01270 {
01271 { 0, 0, 0, 0 },
01272 { { MNEM, ' ', OP (JMPTARG), 0 } },
01273 & ifmt_j, { 0x8000000 }
01274 },
01275
01276 {
01277 { 0, 0, 0, 0 },
01278 { { MNEM, ' ', OP (JMPTARG), 0 } },
01279 & ifmt_j, { 0xc000000 }
01280 },
01281
01282 {
01283 { 0, 0, 0, 0 },
01284 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
01285 & ifmt_bbv, { 0xb4000000 }
01286 },
01287
01288 {
01289 { 0, 0, 0, 0 },
01290 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
01291 & ifmt_andoui, { 0xbc000000 }
01292 },
01293
01294 {
01295 { 0, 0, 0, 0 },
01296 { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
01297 & ifmt_andoui2, { 0xbc000000 }
01298 },
01299
01300 {
01301 { 0, 0, 0, 0 },
01302 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
01303 & ifmt_andoui, { 0x3c000000 }
01304 },
01305
01306 {
01307 { 0, 0, 0, 0 },
01308 { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
01309 & ifmt_andoui2, { 0x3c000000 }
01310 },
01311
01312 {
01313 { 0, 0, 0, 0 },
01314 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASKQ10), 0 } },
01315 & ifmt_mrgbq10, { 0x2d }
01316 },
01317
01318 {
01319 { 0, 0, 0, 0 },
01320 { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASKQ10), 0 } },
01321 & ifmt_mrgbq102, { 0x2d }
01322 },
01323
01324 {
01325 { 0, 0, 0, 0 },
01326 { { MNEM, ' ', OP (JMPTARG), 0 } },
01327 & ifmt_jq10, { 0x8000000 }
01328 },
01329
01330 {
01331 { 0, 0, 0, 0 },
01332 { { MNEM, ' ', OP (RT), ',', OP (JMPTARG), 0 } },
01333 & ifmt_jalq10, { 0xc000000 }
01334 },
01335
01336 {
01337 { 0, 0, 0, 0 },
01338 { { MNEM, ' ', OP (JMPTARG), 0 } },
01339 & ifmt_jq10, { 0xc1f0000 }
01340 },
01341
01342 {
01343 { 0, 0, 0, 0 },
01344 { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
01345 & ifmt_bbi, { 0xf0000000 }
01346 },
01347
01348 {
01349 { 0, 0, 0, 0 },
01350 { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
01351 & ifmt_bbi, { 0xf8000000 }
01352 },
01353
01354 {
01355 { 0, 0, 0, 0 },
01356 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
01357 & ifmt_bbv, { 0xf4000000 }
01358 },
01359
01360 {
01361 { 0, 0, 0, 0 },
01362 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
01363 & ifmt_bbv, { 0xfc000000 }
01364 },
01365
01366 {
01367 { 0, 0, 0, 0 },
01368 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01369 & ifmt_bgez, { 0x4150000 }
01370 },
01371
01372 {
01373 { 0, 0, 0, 0 },
01374 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01375 & ifmt_bgez, { 0x4170000 }
01376 },
01377
01378 {
01379 { 0, 0, 0, 0 },
01380 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01381 & ifmt_bgez, { 0x4140000 }
01382 },
01383
01384 {
01385 { 0, 0, 0, 0 },
01386 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01387 & ifmt_bgez, { 0x4160000 }
01388 },
01389
01390 {
01391 { 0, 0, 0, 0 },
01392 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01393 & ifmt_bgez, { 0x4050000 }
01394 },
01395
01396 {
01397 { 0, 0, 0, 0 },
01398 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01399 & ifmt_bgez, { 0x4070000 }
01400 },
01401
01402 {
01403 { 0, 0, 0, 0 },
01404 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01405 & ifmt_bgez, { 0x4040000 }
01406 },
01407
01408 {
01409 { 0, 0, 0, 0 },
01410 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01411 & ifmt_bgez, { 0x4060000 }
01412 },
01413
01414 {
01415 { 0, 0, 0, 0 },
01416 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
01417 & ifmt_bbv, { 0x18000000 }
01418 },
01419
01420 {
01421 { 0, 0, 0, 0 },
01422 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
01423 & ifmt_bbv, { 0x58000000 }
01424 },
01425
01426 {
01427 { 0, 0, 0, 0 },
01428 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01429 & ifmt_bgez, { 0x4080000 }
01430 },
01431
01432 {
01433 { 0, 0, 0, 0 },
01434 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01435 & ifmt_bgez, { 0x4090000 }
01436 },
01437
01438 {
01439 { 0, 0, 0, 0 },
01440 { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
01441 & ifmt_bgez, { 0x40c0000 }
01442 },
01443
01444 {
01445 { 0, 0, 0, 0 },
01446 { { MNEM, 0 } },
01447 & ifmt_break, { 0xe }
01448 },
01449
01450 {
01451 { 0, 0, 0, 0 },
01452 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01453 & ifmt_add, { 0x4c000014 }
01454 },
01455
01456 {
01457 { 0, 0, 0, 0 },
01458 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01459 & ifmt_add, { 0x4c000015 }
01460 },
01461
01462 {
01463 { 0, 0, 0, 0 },
01464 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
01465 & ifmt_add, { 0x2e }
01466 },
01467
01468 {
01469 { 0, 0, 0, 0 },
01470 { { MNEM, ' ', OP (RD), 0 } },
01471 & ifmt_avail, { 0x4c000024 }
01472 },
01473
01474 {
01475 { 0, 0, 0, 0 },
01476 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
01477 & ifmt_jalr, { 0x4c000025 }
01478 },
01479
01480 {
01481 { 0, 0, 0, 0 },
01482 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
01483 & ifmt_jalr, { 0x4c000027 }
01484 },
01485
01486 {
01487 { 0, 0, 0, 0 },
01488 { { MNEM, ' ', OP (RD), 0 } },
01489 & ifmt_avail, { 0x4c00002c }
01490 },
01491
01492 {
01493 { 0, 0, 0, 0 },
01494 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01495 & ifmt_chkhdr, { 0x4c000020 }
01496 },
01497
01498 {
01499 { 0, 0, 0, 0 },
01500 { { MNEM, ' ', OP (RD), 0 } },
01501 & ifmt_avail, { 0x4c000022 }
01502 },
01503
01504 {
01505 { 0, 0, 0, 0 },
01506 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01507 & ifmt_add, { 0x4c000021 }
01508 },
01509
01510 {
01511 { 0, 0, 0, 0 },
01512 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
01513 & ifmt_jalr, { 0x4c000023 }
01514 },
01515
01516 {
01517 { 0, 0, 0, 0 },
01518 { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
01519 & ifmt_jalr, { 0x4c000026 }
01520 },
01521
01522 {
01523 { 0, 0, 0, 0 },
01524 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01525 & ifmt_add, { 0x4c000008 }
01526 },
01527
01528 {
01529 { 0, 0, 0, 0 },
01530 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01531 & ifmt_add, { 0x4c000009 }
01532 },
01533
01534 {
01535 { 0, 0, 0, 0 },
01536 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01537 & ifmt_add, { 0x4c00000a }
01538 },
01539
01540 {
01541 { 0, 0, 0, 0 },
01542 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01543 & ifmt_add, { 0x4c000010 }
01544 },
01545
01546 {
01547 { 0, 0, 0, 0 },
01548 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01549 & ifmt_add, { 0x4c000011 }
01550 },
01551
01552 {
01553 { 0, 0, 0, 0 },
01554 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01555 & ifmt_add, { 0x4c000012 }
01556 },
01557
01558 {
01559 { 0, 0, 0, 0 },
01560 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01561 & ifmt_rbi, { 0x4c000200 }
01562 },
01563
01564 {
01565 { 0, 0, 0, 0 },
01566 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01567 & ifmt_rbi, { 0x4c000300 }
01568 },
01569
01570 {
01571 { 0, 0, 0, 0 },
01572 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01573 & ifmt_rbi, { 0x4c000100 }
01574 },
01575
01576 {
01577 { 0, 0, 0, 0 },
01578 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01579 & ifmt_rbi, { 0x4c000600 }
01580 },
01581
01582 {
01583 { 0, 0, 0, 0 },
01584 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01585 & ifmt_rbi, { 0x4c000500 }
01586 },
01587
01588 {
01589 { 0, 0, 0, 0 },
01590 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01591 & ifmt_rbi, { 0x4c000700 }
01592 },
01593
01594 {
01595 { 0, 0, 0, 0 },
01596 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01597 & ifmt_rbi, { 0x48000000 }
01598 },
01599
01600 {
01601 { 0, 0, 0, 0 },
01602 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01603 & ifmt_rbi, { 0x48000200 }
01604 },
01605
01606 {
01607 { 0, 0, 0, 0 },
01608 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01609 & ifmt_rbi, { 0x48000100 }
01610 },
01611
01612 {
01613 { 0, 0, 0, 0 },
01614 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
01615 & ifmt_rbi, { 0x48000300 }
01616 },
01617
01618 {
01619 { 0, 0, 0, 0 },
01620 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01621 & ifmt_add, { 0x4c000028 }
01622 },
01623
01624 {
01625 { 0, 0, 0, 0 },
01626 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01627 & ifmt_add, { 0x4c000029 }
01628 },
01629
01630 {
01631 { 0, 0, 0, 0 },
01632 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01633 & ifmt_add, { 0x4c00002a }
01634 },
01635
01636 {
01637 { 0, 0, 0, 0 },
01638 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01639 & ifmt_add, { 0x4c00002b }
01640 },
01641
01642 {
01643 { 0, 0, 0, 0 },
01644 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01645 & ifmt_chkhdr, { 0x4c000001 }
01646 },
01647
01648 {
01649 { 0, 0, 0, 0 },
01650 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01651 & ifmt_chkhdr, { 0x4c000003 }
01652 },
01653
01654 {
01655 { 0, 0, 0, 0 },
01656 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01657 & ifmt_chkhdr, { 0x4c000004 }
01658 },
01659
01660 {
01661 { 0, 0, 0, 0 },
01662 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01663 & ifmt_chkhdr, { 0x4c000005 }
01664 },
01665
01666 {
01667 { 0, 0, 0, 0 },
01668 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01669 & ifmt_add, { 0x4c000006 }
01670 },
01671
01672 {
01673 { 0, 0, 0, 0 },
01674 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01675 & ifmt_add, { 0x4c000007 }
01676 },
01677
01678 {
01679 { 0, 0, 0, 0 },
01680 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01681 & ifmt_chkhdr, { 0x4c00000c }
01682 },
01683
01684 {
01685 { 0, 0, 0, 0 },
01686 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01687 & ifmt_chkhdr, { 0x4c00000d }
01688 },
01689
01690 {
01691 { 0, 0, 0, 0 },
01692 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), ',', OP (CAM_Y), 0 } },
01693 & ifmt_cam36, { 0x4c000400 }
01694 },
01695
01696 {
01697 { 0, 0, 0, 0 },
01698 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
01699 & ifmt_cam36, { 0x4c000440 }
01700 },
01701
01702 {
01703 { 0, 0, 0, 0 },
01704 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
01705 & ifmt_cam36, { 0x4c000480 }
01706 },
01707
01708 {
01709 { 0, 0, 0, 0 },
01710 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
01711 & ifmt_cam36, { 0x4c0004c0 }
01712 },
01713
01714 {
01715 { 0, 0, 0, 0 },
01716 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01717 & ifmt_cm32and, { 0x4c0000ab }
01718 },
01719
01720 {
01721 { 0, 0, 0, 0 },
01722 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01723 & ifmt_cm32and, { 0x4c0000a3 }
01724 },
01725
01726 {
01727 { 0, 0, 0, 0 },
01728 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01729 & ifmt_cm32and, { 0x4c0000aa }
01730 },
01731
01732 {
01733 { 0, 0, 0, 0 },
01734 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01735 & ifmt_add, { 0x4c0000b0 }
01736 },
01737
01738 {
01739 { 0, 0, 0, 0 },
01740 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01741 & ifmt_cm32rd, { 0x4c0000a1 }
01742 },
01743
01744 {
01745 { 0, 0, 0, 0 },
01746 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01747 & ifmt_cm32rd, { 0x4c0000a4 }
01748 },
01749
01750 {
01751 { 0, 0, 0, 0 },
01752 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01753 & ifmt_add, { 0x4c0000a0 }
01754 },
01755
01756 {
01757 { 0, 0, 0, 0 },
01758 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01759 & ifmt_cm32and, { 0x4c0000b8 }
01760 },
01761
01762 {
01763 { 0, 0, 0, 0 },
01764 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01765 & ifmt_cm32rd, { 0x4c0000a9 }
01766 },
01767
01768 {
01769 { 0, 0, 0, 0 },
01770 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01771 & ifmt_cm32rd, { 0x4c0000ac }
01772 },
01773
01774 {
01775 { 0, 0, 0, 0 },
01776 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01777 & ifmt_cm32and, { 0x4c0000a8 }
01778 },
01779
01780 {
01781 { 0, 0, 0, 0 },
01782 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01783 & ifmt_cm32and, { 0x4c0000a2 }
01784 },
01785
01786 {
01787 { 0, 0, 0, 0 },
01788 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01789 & ifmt_cm32rd, { 0x4c000085 }
01790 },
01791
01792 {
01793 { 0, 0, 0, 0 },
01794 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01795 & ifmt_cm32and, { 0x4c000090 }
01796 },
01797
01798 {
01799 { 0, 0, 0, 0 },
01800 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01801 & ifmt_cm32rd, { 0x4c000081 }
01802 },
01803
01804 {
01805 { 0, 0, 0, 0 },
01806 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01807 & ifmt_cm32rd, { 0x4c000084 }
01808 },
01809
01810 {
01811 { 0, 0, 0, 0 },
01812 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01813 & ifmt_cm32and, { 0x4c000094 }
01814 },
01815
01816 {
01817 { 0, 0, 0, 0 },
01818 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01819 & ifmt_cm32and, { 0x4c000080 }
01820 },
01821
01822 {
01823 { 0, 0, 0, 0 },
01824 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01825 & ifmt_cm32and, { 0x4c000098 }
01826 },
01827
01828 {
01829 { 0, 0, 0, 0 },
01830 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01831 & ifmt_cm32rd, { 0x4c000089 }
01832 },
01833
01834 {
01835 { 0, 0, 0, 0 },
01836 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01837 & ifmt_cm32rd, { 0x4c00008c }
01838 },
01839
01840 {
01841 { 0, 0, 0, 0 },
01842 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01843 & ifmt_cm32and, { 0x4c00009c }
01844 },
01845
01846 {
01847 { 0, 0, 0, 0 },
01848 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01849 & ifmt_cm32and, { 0x4c000088 }
01850 },
01851
01852 {
01853 { 0, 0, 0, 0 },
01854 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01855 & ifmt_cm32and, { 0x4c000095 }
01856 },
01857
01858 {
01859 { 0, 0, 0, 0 },
01860 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
01861 & ifmt_cm128ria3, { 0x4c000090 }
01862 },
01863
01864 {
01865 { 0, 0, 0, 0 },
01866 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
01867 & ifmt_cm128ria4, { 0x4c0000b0 }
01868 },
01869
01870 {
01871 { 0, 0, 0, 0 },
01872 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01873 & ifmt_cm32and, { 0x4c00009d }
01874 },
01875
01876 {
01877 { 0, 0, 0, 0 },
01878 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
01879 & ifmt_cm128ria3, { 0x4c000098 }
01880 },
01881
01882 {
01883 { 0, 0, 0, 0 },
01884 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
01885 & ifmt_cm128ria4, { 0x4c0000b8 }
01886 },
01887
01888 {
01889 { 0, 0, 0, 0 },
01890 { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
01891 & ifmt_cm32and, { 0x4c0000a6 }
01892 },
01893
01894 {
01895 { 0, 0, 0, 0 },
01896 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
01897 & ifmt_chkhdr, { 0x4c000000 }
01898 },
01899
01900 {
01901 { 0, 0, 0, 0 },
01902 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
01903 & ifmt_ctc, { 0x4c000002 }
01904 },
01905 };
01906
01907 #undef A
01908 #undef OPERAND
01909 #undef MNEM
01910 #undef OP
01911
01912
01913
01914 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
01915 #define F(f) & iq2000_cgen_ifld_table[IQ2000_##f]
01916 #else
01917 #define F(f) & iq2000_cgen_ifld_table[IQ2000_f]
01918 #endif
01919 static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
01920 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01921 };
01922
01923 static const CGEN_IFMT ifmt_li ATTRIBUTE_UNUSED = {
01924 32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01925 };
01926
01927 static const CGEN_IFMT ifmt_move ATTRIBUTE_UNUSED = {
01928 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01929 };
01930
01931 static const CGEN_IFMT ifmt_lb_base_0 ATTRIBUTE_UNUSED = {
01932 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01933 };
01934
01935 static const CGEN_IFMT ifmt_lbu_base_0 ATTRIBUTE_UNUSED = {
01936 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01937 };
01938
01939 static const CGEN_IFMT ifmt_lh_base_0 ATTRIBUTE_UNUSED = {
01940 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01941 };
01942
01943 static const CGEN_IFMT ifmt_lw_base_0 ATTRIBUTE_UNUSED = {
01944 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01945 };
01946
01947 static const CGEN_IFMT ifmt_m_add ATTRIBUTE_UNUSED = {
01948 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01949 };
01950
01951 static const CGEN_IFMT ifmt_m_addu ATTRIBUTE_UNUSED = {
01952 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01953 };
01954
01955 static const CGEN_IFMT ifmt_m_and ATTRIBUTE_UNUSED = {
01956 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01957 };
01958
01959 static const CGEN_IFMT ifmt_m_j ATTRIBUTE_UNUSED = {
01960 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01961 };
01962
01963 static const CGEN_IFMT ifmt_m_or ATTRIBUTE_UNUSED = {
01964 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01965 };
01966
01967 static const CGEN_IFMT ifmt_m_sll ATTRIBUTE_UNUSED = {
01968 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01969 };
01970
01971 static const CGEN_IFMT ifmt_m_slt ATTRIBUTE_UNUSED = {
01972 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01973 };
01974
01975 static const CGEN_IFMT ifmt_m_sltu ATTRIBUTE_UNUSED = {
01976 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01977 };
01978
01979 static const CGEN_IFMT ifmt_m_sra ATTRIBUTE_UNUSED = {
01980 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01981 };
01982
01983 static const CGEN_IFMT ifmt_m_srl ATTRIBUTE_UNUSED = {
01984 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01985 };
01986
01987 static const CGEN_IFMT ifmt_not ATTRIBUTE_UNUSED = {
01988 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
01989 };
01990
01991 static const CGEN_IFMT ifmt_subi ATTRIBUTE_UNUSED = {
01992 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01993 };
01994
01995 static const CGEN_IFMT ifmt_m_sub ATTRIBUTE_UNUSED = {
01996 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
01997 };
01998
01999 static const CGEN_IFMT ifmt_m_subu ATTRIBUTE_UNUSED = {
02000 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02001 };
02002
02003 static const CGEN_IFMT ifmt_sb_base_0 ATTRIBUTE_UNUSED = {
02004 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02005 };
02006
02007 static const CGEN_IFMT ifmt_sh_base_0 ATTRIBUTE_UNUSED = {
02008 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02009 };
02010
02011 static const CGEN_IFMT ifmt_sw_base_0 ATTRIBUTE_UNUSED = {
02012 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02013 };
02014
02015 static const CGEN_IFMT ifmt_m_xor ATTRIBUTE_UNUSED = {
02016 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02017 };
02018
02019 static const CGEN_IFMT ifmt_ldw_base_0 ATTRIBUTE_UNUSED = {
02020 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02021 };
02022
02023 static const CGEN_IFMT ifmt_sdw_base_0 ATTRIBUTE_UNUSED = {
02024 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
02025 };
02026
02027 static const CGEN_IFMT ifmt_m_avail ATTRIBUTE_UNUSED = {
02028 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02029 };
02030
02031 static const CGEN_IFMT ifmt_m_cam36 ATTRIBUTE_UNUSED = {
02032 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
02033 };
02034
02035 static const CGEN_IFMT ifmt_m_cam72 ATTRIBUTE_UNUSED = {
02036 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
02037 };
02038
02039 static const CGEN_IFMT ifmt_m_cam144 ATTRIBUTE_UNUSED = {
02040 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
02041 };
02042
02043 static const CGEN_IFMT ifmt_m_cam288 ATTRIBUTE_UNUSED = {
02044 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
02045 };
02046
02047 static const CGEN_IFMT ifmt_m_cm32read ATTRIBUTE_UNUSED = {
02048 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02049 };
02050
02051 static const CGEN_IFMT ifmt_m_cm64read ATTRIBUTE_UNUSED = {
02052 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02053 };
02054
02055 static const CGEN_IFMT ifmt_m_cm32mlog ATTRIBUTE_UNUSED = {
02056 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02057 };
02058
02059 static const CGEN_IFMT ifmt_m_cm32and ATTRIBUTE_UNUSED = {
02060 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02061 };
02062
02063 static const CGEN_IFMT ifmt_m_cm32andn ATTRIBUTE_UNUSED = {
02064 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02065 };
02066
02067 static const CGEN_IFMT ifmt_m_cm32or ATTRIBUTE_UNUSED = {
02068 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02069 };
02070
02071 static const CGEN_IFMT ifmt_m_cm32ra ATTRIBUTE_UNUSED = {
02072 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02073 };
02074
02075 static const CGEN_IFMT ifmt_m_cm32rd ATTRIBUTE_UNUSED = {
02076 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02077 };
02078
02079 static const CGEN_IFMT ifmt_m_cm32ri ATTRIBUTE_UNUSED = {
02080 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02081 };
02082
02083 static const CGEN_IFMT ifmt_m_cm32rs ATTRIBUTE_UNUSED = {
02084 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02085 };
02086
02087 static const CGEN_IFMT ifmt_m_cm32sa ATTRIBUTE_UNUSED = {
02088 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02089 };
02090
02091 static const CGEN_IFMT ifmt_m_cm32sd ATTRIBUTE_UNUSED = {
02092 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02093 };
02094
02095 static const CGEN_IFMT ifmt_m_cm32si ATTRIBUTE_UNUSED = {
02096 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02097 };
02098
02099 static const CGEN_IFMT ifmt_m_cm32ss ATTRIBUTE_UNUSED = {
02100 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02101 };
02102
02103 static const CGEN_IFMT ifmt_m_cm32xor ATTRIBUTE_UNUSED = {
02104 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02105 };
02106
02107 static const CGEN_IFMT ifmt_m_cm64clr ATTRIBUTE_UNUSED = {
02108 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02109 };
02110
02111 static const CGEN_IFMT ifmt_m_cm64ra ATTRIBUTE_UNUSED = {
02112 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02113 };
02114
02115 static const CGEN_IFMT ifmt_m_cm64rd ATTRIBUTE_UNUSED = {
02116 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02117 };
02118
02119 static const CGEN_IFMT ifmt_m_cm64ri ATTRIBUTE_UNUSED = {
02120 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02121 };
02122
02123 static const CGEN_IFMT ifmt_m_cm64ria2 ATTRIBUTE_UNUSED = {
02124 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02125 };
02126
02127 static const CGEN_IFMT ifmt_m_cm64rs ATTRIBUTE_UNUSED = {
02128 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02129 };
02130
02131 static const CGEN_IFMT ifmt_m_cm64sa ATTRIBUTE_UNUSED = {
02132 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02133 };
02134
02135 static const CGEN_IFMT ifmt_m_cm64sd ATTRIBUTE_UNUSED = {
02136 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02137 };
02138
02139 static const CGEN_IFMT ifmt_m_cm64si ATTRIBUTE_UNUSED = {
02140 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02141 };
02142
02143 static const CGEN_IFMT ifmt_m_cm64sia2 ATTRIBUTE_UNUSED = {
02144 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02145 };
02146
02147 static const CGEN_IFMT ifmt_m_cm64ss ATTRIBUTE_UNUSED = {
02148 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02149 };
02150
02151 static const CGEN_IFMT ifmt_m_cm128ria2 ATTRIBUTE_UNUSED = {
02152 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02153 };
02154
02155 static const CGEN_IFMT ifmt_m_cm128ria3 ATTRIBUTE_UNUSED = {
02156 32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
02157 };
02158
02159 static const CGEN_IFMT ifmt_m_cm128ria4 ATTRIBUTE_UNUSED = {
02160 32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
02161 };
02162
02163 static const CGEN_IFMT ifmt_m_cm128sia2 ATTRIBUTE_UNUSED = {
02164 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
02165 };
02166
02167 static const CGEN_IFMT ifmt_m_cm128sia3 ATTRIBUTE_UNUSED = {
02168 32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
02169 };
02170
02171 static const CGEN_IFMT ifmt_m_cm128sia4 ATTRIBUTE_UNUSED = {
02172 32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
02173 };
02174
02175 static const CGEN_IFMT ifmt_m_cmphdr ATTRIBUTE_UNUSED = {
02176 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02177 };
02178
02179 static const CGEN_IFMT ifmt_m_dbd ATTRIBUTE_UNUSED = {
02180 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02181 };
02182
02183 static const CGEN_IFMT ifmt_m2_dbd ATTRIBUTE_UNUSED = {
02184 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02185 };
02186
02187 static const CGEN_IFMT ifmt_m_dpwt ATTRIBUTE_UNUSED = {
02188 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02189 };
02190
02191 static const CGEN_IFMT ifmt_m_free ATTRIBUTE_UNUSED = {
02192 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02193 };
02194
02195 static const CGEN_IFMT ifmt_m_lock ATTRIBUTE_UNUSED = {
02196 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02197 };
02198
02199 static const CGEN_IFMT ifmt_m_pkrla ATTRIBUTE_UNUSED = {
02200 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02201 };
02202
02203 static const CGEN_IFMT ifmt_m_pkrlac ATTRIBUTE_UNUSED = {
02204 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02205 };
02206
02207 static const CGEN_IFMT ifmt_m_pkrlah ATTRIBUTE_UNUSED = {
02208 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02209 };
02210
02211 static const CGEN_IFMT ifmt_m_pkrlau ATTRIBUTE_UNUSED = {
02212 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02213 };
02214
02215 static const CGEN_IFMT ifmt_m_pkrli ATTRIBUTE_UNUSED = {
02216 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02217 };
02218
02219 static const CGEN_IFMT ifmt_m_pkrlic ATTRIBUTE_UNUSED = {
02220 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02221 };
02222
02223 static const CGEN_IFMT ifmt_m_pkrlih ATTRIBUTE_UNUSED = {
02224 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02225 };
02226
02227 static const CGEN_IFMT ifmt_m_pkrliu ATTRIBUTE_UNUSED = {
02228 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02229 };
02230
02231 static const CGEN_IFMT ifmt_m_rba ATTRIBUTE_UNUSED = {
02232 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02233 };
02234
02235 static const CGEN_IFMT ifmt_m_rbal ATTRIBUTE_UNUSED = {
02236 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02237 };
02238
02239 static const CGEN_IFMT ifmt_m_rbar ATTRIBUTE_UNUSED = {
02240 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02241 };
02242
02243 static const CGEN_IFMT ifmt_m_rbi ATTRIBUTE_UNUSED = {
02244 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02245 };
02246
02247 static const CGEN_IFMT ifmt_m_rbil ATTRIBUTE_UNUSED = {
02248 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02249 };
02250
02251 static const CGEN_IFMT ifmt_m_rbir ATTRIBUTE_UNUSED = {
02252 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02253 };
02254
02255 static const CGEN_IFMT ifmt_m_swwr ATTRIBUTE_UNUSED = {
02256 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02257 };
02258
02259 static const CGEN_IFMT ifmt_m_swwru ATTRIBUTE_UNUSED = {
02260 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02261 };
02262
02263 static const CGEN_IFMT ifmt_m_tstod ATTRIBUTE_UNUSED = {
02264 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02265 };
02266
02267 static const CGEN_IFMT ifmt_m_unlk ATTRIBUTE_UNUSED = {
02268 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02269 };
02270
02271 static const CGEN_IFMT ifmt_m_wba ATTRIBUTE_UNUSED = {
02272 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02273 };
02274
02275 static const CGEN_IFMT ifmt_m_wbac ATTRIBUTE_UNUSED = {
02276 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02277 };
02278
02279 static const CGEN_IFMT ifmt_m_wbau ATTRIBUTE_UNUSED = {
02280 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
02281 };
02282
02283 static const CGEN_IFMT ifmt_m_wbi ATTRIBUTE_UNUSED = {
02284 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02285 };
02286
02287 static const CGEN_IFMT ifmt_m_wbic ATTRIBUTE_UNUSED = {
02288 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02289 };
02290
02291 static const CGEN_IFMT ifmt_m_wbiu ATTRIBUTE_UNUSED = {
02292 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
02293 };
02294
02295 #undef F
02296
02297
02298
02299 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
02300 #define A(a) (1 << CGEN_INSN_##a)
02301 #else
02302 #define A(a) (1 << CGEN_INSN_a)
02303 #endif
02304 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
02305 #define OPERAND(op) IQ2000_OPERAND_##op
02306 #else
02307 #define OPERAND(op) IQ2000_OPERAND_op
02308 #endif
02309 #define MNEM CGEN_SYNTAX_MNEMONIC
02310 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
02311
02312
02313
02314 static const CGEN_IBASE iq2000_cgen_macro_insn_table[] =
02315 {
02316
02317 {
02318 -1, "nop", "nop", 32,
02319 { 0|A(ALIAS), { (1<<MACH_BASE) } }
02320 },
02321
02322 {
02323 -1, "li", "li", 32,
02324 { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02325 },
02326
02327 {
02328 -1, "move", "move", 32,
02329 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_BASE) } }
02330 },
02331
02332 {
02333 -1, "lb-base-0", "lb", 32,
02334 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02335 },
02336
02337 {
02338 -1, "lbu-base-0", "lbu", 32,
02339 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02340 },
02341
02342 {
02343 -1, "lh-base-0", "lh", 32,
02344 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02345 },
02346
02347 {
02348 -1, "lw-base-0", "lw", 32,
02349 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02350 },
02351
02352 {
02353 -1, "m-add", "add", 32,
02354 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02355 },
02356
02357 {
02358 -1, "m-addu", "addu", 32,
02359 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02360 },
02361
02362 {
02363 -1, "m-and", "and", 32,
02364 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02365 },
02366
02367 {
02368 -1, "m-j", "j", 32,
02369 { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02370 },
02371
02372 {
02373 -1, "m-or", "or", 32,
02374 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02375 },
02376
02377 {
02378 -1, "m-sll", "sll", 32,
02379 { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_BASE) } }
02380 },
02381
02382 {
02383 -1, "m-slt", "slt", 32,
02384 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02385 },
02386
02387 {
02388 -1, "m-sltu", "sltu", 32,
02389 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02390 },
02391
02392 {
02393 -1, "m-sra", "sra", 32,
02394 { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_BASE) } }
02395 },
02396
02397 {
02398 -1, "m-srl", "srl", 32,
02399 { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_BASE) } }
02400 },
02401
02402 {
02403 -1, "not", "not", 32,
02404 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_BASE) } }
02405 },
02406
02407 {
02408 -1, "subi", "subi", 32,
02409 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02410 },
02411
02412 {
02413 -1, "m-sub", "sub", 32,
02414 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02415 },
02416
02417 {
02418 -1, "m-subu", "subu", 32,
02419 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02420 },
02421
02422 {
02423 -1, "sb-base-0", "sb", 32,
02424 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02425 },
02426
02427 {
02428 -1, "sh-base-0", "sh", 32,
02429 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02430 },
02431
02432 {
02433 -1, "sw-base-0", "sw", 32,
02434 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_BASE) } }
02435 },
02436
02437 {
02438 -1, "m-xor", "xor", 32,
02439 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_BASE) } }
02440 },
02441
02442 {
02443 -1, "ldw-base-0", "ldw", 32,
02444 { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(LOAD_DELAY)|A(EVEN_REG_NUM)|A(ALIAS), { (1<<MACH_IQ2000) } }
02445 },
02446
02447 {
02448 -1, "sdw-base-0", "sdw", 32,
02449 { 0|A(NO_DIS)|A(USES_RT)|A(EVEN_REG_NUM)|A(ALIAS), { (1<<MACH_IQ2000) } }
02450 },
02451
02452 {
02453 -1, "m-avail", "avail", 32,
02454 { 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_IQ10) } }
02455 },
02456
02457 {
02458 -1, "m-cam36", "cam36", 32,
02459 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02460 },
02461
02462 {
02463 -1, "m-cam72", "cam72", 32,
02464 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02465 },
02466
02467 {
02468 -1, "m-cam144", "cam144", 32,
02469 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02470 },
02471
02472 {
02473 -1, "m-cam288", "cam288", 32,
02474 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02475 },
02476
02477 {
02478 -1, "m-cm32read", "cm32read", 32,
02479 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02480 },
02481
02482 {
02483 -1, "m-cm64read", "cm64read", 32,
02484 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02485 },
02486
02487 {
02488 -1, "m-cm32mlog", "cm32mlog", 32,
02489 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02490 },
02491
02492 {
02493 -1, "m-cm32and", "cm32and", 32,
02494 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02495 },
02496
02497 {
02498 -1, "m-cm32andn", "cm32andn", 32,
02499 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02500 },
02501
02502 {
02503 -1, "m-cm32or", "cm32or", 32,
02504 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02505 },
02506
02507 {
02508 -1, "m-cm32ra", "cm32ra", 32,
02509 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02510 },
02511
02512 {
02513 -1, "m-cm32rd", "cm32rd", 32,
02514 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02515 },
02516
02517 {
02518 -1, "m-cm32ri", "cm32ri", 32,
02519 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02520 },
02521
02522 {
02523 -1, "m-cm32rs", "cm32rs", 32,
02524 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02525 },
02526
02527 {
02528 -1, "m-cm32sa", "cm32sa", 32,
02529 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02530 },
02531
02532 {
02533 -1, "m-cm32sd", "cm32sd", 32,
02534 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02535 },
02536
02537 {
02538 -1, "m-cm32si", "cm32si", 32,
02539 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02540 },
02541
02542 {
02543 -1, "m-cm32ss", "cm32ss", 32,
02544 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02545 },
02546
02547 {
02548 -1, "m-cm32xor", "cm32xor", 32,
02549 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02550 },
02551
02552 {
02553 -1, "m-cm64clr", "cm64clr", 32,
02554 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02555 },
02556
02557 {
02558 -1, "m-cm64ra", "cm64ra", 32,
02559 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02560 },
02561
02562 {
02563 -1, "m-cm64rd", "cm64rd", 32,
02564 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02565 },
02566
02567 {
02568 -1, "m-cm64ri", "cm64ri", 32,
02569 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02570 },
02571
02572 {
02573 -1, "m-cm64ria2", "cm64ria2", 32,
02574 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02575 },
02576
02577 {
02578 -1, "m-cm64rs", "cm64rs", 32,
02579 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02580 },
02581
02582 {
02583 -1, "m-cm64sa", "cm64sa", 32,
02584 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02585 },
02586
02587 {
02588 -1, "m-cm64sd", "cm64sd", 32,
02589 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02590 },
02591
02592 {
02593 -1, "m-cm64si", "cm64si", 32,
02594 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02595 },
02596
02597 {
02598 -1, "m-cm64sia2", "cm64sia2", 32,
02599 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02600 },
02601
02602 {
02603 -1, "m-cm64ss", "cm64ss", 32,
02604 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02605 },
02606
02607 {
02608 -1, "m-cm128ria2", "cm128ria2", 32,
02609 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02610 },
02611
02612 {
02613 -1, "m-cm128ria3", "cm128ria3", 32,
02614 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02615 },
02616
02617 {
02618 -1, "m-cm128ria4", "cm128ria4", 32,
02619 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02620 },
02621
02622 {
02623 -1, "m-cm128sia2", "cm128sia2", 32,
02624 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02625 },
02626
02627 {
02628 -1, "m-cm128sia3", "cm128sia3", 32,
02629 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02630 },
02631
02632 {
02633 -1, "m-cm128sia4", "cm128sia4", 32,
02634 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02635 },
02636
02637 {
02638 -1, "m-cmphdr", "cmphdr", 32,
02639 { 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_IQ10) } }
02640 },
02641
02642 {
02643 -1, "m-dbd", "dbd", 32,
02644 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02645 },
02646
02647 {
02648 -1, "m2-dbd", "dbd", 32,
02649 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02650 },
02651
02652 {
02653 -1, "m-dpwt", "dpwt", 32,
02654 { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02655 },
02656
02657 {
02658 -1, "m-free", "free", 32,
02659 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02660 },
02661
02662 {
02663 -1, "m-lock", "lock", 32,
02664 { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02665 },
02666
02667 {
02668 -1, "m-pkrla", "pkrla", 32,
02669 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02670 },
02671
02672 {
02673 -1, "m-pkrlac", "pkrlac", 32,
02674 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02675 },
02676
02677 {
02678 -1, "m-pkrlah", "pkrlah", 32,
02679 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02680 },
02681
02682 {
02683 -1, "m-pkrlau", "pkrlau", 32,
02684 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02685 },
02686
02687 {
02688 -1, "m-pkrli", "pkrli", 32,
02689 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02690 },
02691
02692 {
02693 -1, "m-pkrlic", "pkrlic", 32,
02694 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02695 },
02696
02697 {
02698 -1, "m-pkrlih", "pkrlih", 32,
02699 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02700 },
02701
02702 {
02703 -1, "m-pkrliu", "pkrliu", 32,
02704 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02705 },
02706
02707 {
02708 -1, "m-rba", "rba", 32,
02709 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02710 },
02711
02712 {
02713 -1, "m-rbal", "rbal", 32,
02714 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02715 },
02716
02717 {
02718 -1, "m-rbar", "rbar", 32,
02719 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02720 },
02721
02722 {
02723 -1, "m-rbi", "rbi", 32,
02724 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02725 },
02726
02727 {
02728 -1, "m-rbil", "rbil", 32,
02729 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02730 },
02731
02732 {
02733 -1, "m-rbir", "rbir", 32,
02734 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02735 },
02736
02737 {
02738 -1, "m-swwr", "swwr", 32,
02739 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02740 },
02741
02742 {
02743 -1, "m-swwru", "swwru", 32,
02744 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02745 },
02746
02747 {
02748 -1, "m-tstod", "tstod", 32,
02749 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02750 },
02751
02752 {
02753 -1, "m-unlk", "unlk", 32,
02754 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { (1<<MACH_IQ10) } }
02755 },
02756
02757 {
02758 -1, "m-wba", "wba", 32,
02759 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02760 },
02761
02762 {
02763 -1, "m-wbac", "wbac", 32,
02764 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02765 },
02766
02767 {
02768 -1, "m-wbau", "wbau", 32,
02769 { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { (1<<MACH_IQ10) } }
02770 },
02771
02772 {
02773 -1, "m-wbi", "wbi", 32,
02774 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02775 },
02776
02777 {
02778 -1, "m-wbic", "wbic", 32,
02779 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02780 },
02781
02782 {
02783 -1, "m-wbiu", "wbiu", 32,
02784 { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { (1<<MACH_IQ10) } }
02785 },
02786 };
02787
02788
02789
02790 static const CGEN_OPCODE iq2000_cgen_macro_insn_opcode_table[] =
02791 {
02792
02793 {
02794 { 0, 0, 0, 0 },
02795 { { MNEM, 0 } },
02796 & ifmt_nop, { 0x0 }
02797 },
02798
02799 {
02800 { 0, 0, 0, 0 },
02801 { { MNEM, ' ', OP (RS), ',', OP (IMM), 0 } },
02802 & ifmt_li, { 0x34000000 }
02803 },
02804
02805 {
02806 { 0, 0, 0, 0 },
02807 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
02808 & ifmt_move, { 0x25 }
02809 },
02810
02811 {
02812 { 0, 0, 0, 0 },
02813 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02814 & ifmt_lb_base_0, { 0x80000000 }
02815 },
02816
02817 {
02818 { 0, 0, 0, 0 },
02819 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02820 & ifmt_lbu_base_0, { 0x90000000 }
02821 },
02822
02823 {
02824 { 0, 0, 0, 0 },
02825 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02826 & ifmt_lh_base_0, { 0x84000000 }
02827 },
02828
02829 {
02830 { 0, 0, 0, 0 },
02831 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02832 & ifmt_lw_base_0, { 0x8c000000 }
02833 },
02834
02835 {
02836 { 0, 0, 0, 0 },
02837 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
02838 & ifmt_m_add, { 0x20000000 }
02839 },
02840
02841 {
02842 { 0, 0, 0, 0 },
02843 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
02844 & ifmt_m_addu, { 0x24000000 }
02845 },
02846
02847 {
02848 { 0, 0, 0, 0 },
02849 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
02850 & ifmt_m_and, { 0x30000000 }
02851 },
02852
02853 {
02854 { 0, 0, 0, 0 },
02855 { { MNEM, ' ', OP (RS), 0 } },
02856 & ifmt_m_j, { 0x8 }
02857 },
02858
02859 {
02860 { 0, 0, 0, 0 },
02861 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
02862 & ifmt_m_or, { 0x34000000 }
02863 },
02864
02865 {
02866 { 0, 0, 0, 0 },
02867 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
02868 & ifmt_m_sll, { 0x4 }
02869 },
02870
02871 {
02872 { 0, 0, 0, 0 },
02873 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
02874 & ifmt_m_slt, { 0x28000000 }
02875 },
02876
02877 {
02878 { 0, 0, 0, 0 },
02879 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
02880 & ifmt_m_sltu, { 0x2c000000 }
02881 },
02882
02883 {
02884 { 0, 0, 0, 0 },
02885 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
02886 & ifmt_m_sra, { 0x7 }
02887 },
02888
02889 {
02890 { 0, 0, 0, 0 },
02891 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
02892 & ifmt_m_srl, { 0x6 }
02893 },
02894
02895 {
02896 { 0, 0, 0, 0 },
02897 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
02898 & ifmt_not, { 0x27 }
02899 },
02900
02901 {
02902 { 0, 0, 0, 0 },
02903 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
02904 & ifmt_subi, { 0x24000000 }
02905 },
02906
02907 {
02908 { 0, 0, 0, 0 },
02909 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
02910 & ifmt_m_sub, { 0x24000000 }
02911 },
02912
02913 {
02914 { 0, 0, 0, 0 },
02915 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
02916 & ifmt_m_subu, { 0x24000000 }
02917 },
02918
02919 {
02920 { 0, 0, 0, 0 },
02921 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02922 & ifmt_sb_base_0, { 0xa0000000 }
02923 },
02924
02925 {
02926 { 0, 0, 0, 0 },
02927 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02928 & ifmt_sh_base_0, { 0xa4000000 }
02929 },
02930
02931 {
02932 { 0, 0, 0, 0 },
02933 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02934 & ifmt_sw_base_0, { 0xac000000 }
02935 },
02936
02937 {
02938 { 0, 0, 0, 0 },
02939 { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
02940 & ifmt_m_xor, { 0x38000000 }
02941 },
02942
02943 {
02944 { 0, 0, 0, 0 },
02945 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02946 & ifmt_ldw_base_0, { 0xc0000000 }
02947 },
02948
02949 {
02950 { 0, 0, 0, 0 },
02951 { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
02952 & ifmt_sdw_base_0, { 0xe0000000 }
02953 },
02954
02955 {
02956 { 0, 0, 0, 0 },
02957 { { MNEM, 0 } },
02958 & ifmt_m_avail, { 0x4c000024 }
02959 },
02960
02961 {
02962 { 0, 0, 0, 0 },
02963 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
02964 & ifmt_m_cam36, { 0x4c000400 }
02965 },
02966
02967 {
02968 { 0, 0, 0, 0 },
02969 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
02970 & ifmt_m_cam72, { 0x4c000440 }
02971 },
02972
02973 {
02974 { 0, 0, 0, 0 },
02975 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
02976 & ifmt_m_cam144, { 0x4c000480 }
02977 },
02978
02979 {
02980 { 0, 0, 0, 0 },
02981 { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
02982 & ifmt_m_cam288, { 0x4c0004c0 }
02983 },
02984
02985 {
02986 { 0, 0, 0, 0 },
02987 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
02988 & ifmt_m_cm32read, { 0x4c0000b0 }
02989 },
02990
02991 {
02992 { 0, 0, 0, 0 },
02993 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
02994 & ifmt_m_cm64read, { 0x4c000090 }
02995 },
02996
02997 {
02998 { 0, 0, 0, 0 },
02999 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03000 & ifmt_m_cm32mlog, { 0x4c0000aa }
03001 },
03002
03003 {
03004 { 0, 0, 0, 0 },
03005 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03006 & ifmt_m_cm32and, { 0x4c0000ab }
03007 },
03008
03009 {
03010 { 0, 0, 0, 0 },
03011 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03012 & ifmt_m_cm32andn, { 0x4c0000a3 }
03013 },
03014
03015 {
03016 { 0, 0, 0, 0 },
03017 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03018 & ifmt_m_cm32or, { 0x4c0000aa }
03019 },
03020
03021 {
03022 { 0, 0, 0, 0 },
03023 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03024 & ifmt_m_cm32ra, { 0x4c0000b0 }
03025 },
03026
03027 {
03028 { 0, 0, 0, 0 },
03029 { { MNEM, ' ', OP (RT), 0 } },
03030 & ifmt_m_cm32rd, { 0x4c0000a1 }
03031 },
03032
03033 {
03034 { 0, 0, 0, 0 },
03035 { { MNEM, ' ', OP (RT), 0 } },
03036 & ifmt_m_cm32ri, { 0x4c0000a4 }
03037 },
03038
03039 {
03040 { 0, 0, 0, 0 },
03041 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03042 & ifmt_m_cm32rs, { 0x4c0000a0 }
03043 },
03044
03045 {
03046 { 0, 0, 0, 0 },
03047 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03048 & ifmt_m_cm32sa, { 0x4c0000b8 }
03049 },
03050
03051 {
03052 { 0, 0, 0, 0 },
03053 { { MNEM, ' ', OP (RT), 0 } },
03054 & ifmt_m_cm32sd, { 0x4c0000a9 }
03055 },
03056
03057 {
03058 { 0, 0, 0, 0 },
03059 { { MNEM, ' ', OP (RT), 0 } },
03060 & ifmt_m_cm32si, { 0x4c0000ac }
03061 },
03062
03063 {
03064 { 0, 0, 0, 0 },
03065 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03066 & ifmt_m_cm32ss, { 0x4c0000a8 }
03067 },
03068
03069 {
03070 { 0, 0, 0, 0 },
03071 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03072 & ifmt_m_cm32xor, { 0x4c0000a2 }
03073 },
03074
03075 {
03076 { 0, 0, 0, 0 },
03077 { { MNEM, ' ', OP (RT), 0 } },
03078 & ifmt_m_cm64clr, { 0x4c000085 }
03079 },
03080
03081 {
03082 { 0, 0, 0, 0 },
03083 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03084 & ifmt_m_cm64ra, { 0x4c000090 }
03085 },
03086
03087 {
03088 { 0, 0, 0, 0 },
03089 { { MNEM, ' ', OP (RT), 0 } },
03090 & ifmt_m_cm64rd, { 0x4c000081 }
03091 },
03092
03093 {
03094 { 0, 0, 0, 0 },
03095 { { MNEM, ' ', OP (RT), 0 } },
03096 & ifmt_m_cm64ri, { 0x4c000084 }
03097 },
03098
03099 {
03100 { 0, 0, 0, 0 },
03101 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03102 & ifmt_m_cm64ria2, { 0x4c000094 }
03103 },
03104
03105 {
03106 { 0, 0, 0, 0 },
03107 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03108 & ifmt_m_cm64rs, { 0x4c000080 }
03109 },
03110
03111 {
03112 { 0, 0, 0, 0 },
03113 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03114 & ifmt_m_cm64sa, { 0x4c000098 }
03115 },
03116
03117 {
03118 { 0, 0, 0, 0 },
03119 { { MNEM, ' ', OP (RT), 0 } },
03120 & ifmt_m_cm64sd, { 0x4c000089 }
03121 },
03122
03123 {
03124 { 0, 0, 0, 0 },
03125 { { MNEM, ' ', OP (RT), 0 } },
03126 & ifmt_m_cm64si, { 0x4c00008c }
03127 },
03128
03129 {
03130 { 0, 0, 0, 0 },
03131 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03132 & ifmt_m_cm64sia2, { 0x4c00009c }
03133 },
03134
03135 {
03136 { 0, 0, 0, 0 },
03137 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03138 & ifmt_m_cm64ss, { 0x4c000088 }
03139 },
03140
03141 {
03142 { 0, 0, 0, 0 },
03143 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03144 & ifmt_m_cm128ria2, { 0x4c000095 }
03145 },
03146
03147 {
03148 { 0, 0, 0, 0 },
03149 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
03150 & ifmt_m_cm128ria3, { 0x4c000090 }
03151 },
03152
03153 {
03154 { 0, 0, 0, 0 },
03155 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
03156 & ifmt_m_cm128ria4, { 0x4c0000b0 }
03157 },
03158
03159 {
03160 { 0, 0, 0, 0 },
03161 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03162 & ifmt_m_cm128sia2, { 0x4c00009d }
03163 },
03164
03165 {
03166 { 0, 0, 0, 0 },
03167 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
03168 & ifmt_m_cm128sia3, { 0x4c000098 }
03169 },
03170
03171 {
03172 { 0, 0, 0, 0 },
03173 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
03174 & ifmt_m_cm128sia4, { 0x4c0000b8 }
03175 },
03176
03177 {
03178 { 0, 0, 0, 0 },
03179 { { MNEM, 0 } },
03180 & ifmt_m_cmphdr, { 0x4c00002c }
03181 },
03182
03183 {
03184 { 0, 0, 0, 0 },
03185 { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
03186 & ifmt_m_dbd, { 0x4c000021 }
03187 },
03188
03189 {
03190 { 0, 0, 0, 0 },
03191 { { MNEM, ' ', OP (RT), 0 } },
03192 & ifmt_m2_dbd, { 0x4c000021 }
03193 },
03194
03195 {
03196 { 0, 0, 0, 0 },
03197 { { MNEM, ' ', OP (RS), 0 } },
03198 & ifmt_m_dpwt, { 0x4c000023 }
03199 },
03200
03201 {
03202 { 0, 0, 0, 0 },
03203 { { MNEM, ' ', OP (RS), 0 } },
03204 & ifmt_m_free, { 0x4c000025 }
03205 },
03206
03207 {
03208 { 0, 0, 0, 0 },
03209 { { MNEM, ' ', OP (RT), 0 } },
03210 & ifmt_m_lock, { 0x4c000001 }
03211 },
03212
03213 {
03214 { 0, 0, 0, 0 },
03215 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03216 & ifmt_m_pkrla, { 0x4c000028 }
03217 },
03218
03219 {
03220 { 0, 0, 0, 0 },
03221 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03222 & ifmt_m_pkrlac, { 0x4c00002b }
03223 },
03224
03225 {
03226 { 0, 0, 0, 0 },
03227 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03228 & ifmt_m_pkrlah, { 0x4c00002a }
03229 },
03230
03231 {
03232 { 0, 0, 0, 0 },
03233 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03234 & ifmt_m_pkrlau, { 0x4c000029 }
03235 },
03236
03237 {
03238 { 0, 0, 0, 0 },
03239 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03240 & ifmt_m_pkrli, { 0x48000000 }
03241 },
03242
03243 {
03244 { 0, 0, 0, 0 },
03245 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03246 & ifmt_m_pkrlic, { 0x48000300 }
03247 },
03248
03249 {
03250 { 0, 0, 0, 0 },
03251 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03252 & ifmt_m_pkrlih, { 0x48000200 }
03253 },
03254
03255 {
03256 { 0, 0, 0, 0 },
03257 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03258 & ifmt_m_pkrliu, { 0x48000100 }
03259 },
03260
03261 {
03262 { 0, 0, 0, 0 },
03263 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03264 & ifmt_m_rba, { 0x4c000008 }
03265 },
03266
03267 {
03268 { 0, 0, 0, 0 },
03269 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03270 & ifmt_m_rbal, { 0x4c000009 }
03271 },
03272
03273 {
03274 { 0, 0, 0, 0 },
03275 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03276 & ifmt_m_rbar, { 0x4c00000a }
03277 },
03278
03279 {
03280 { 0, 0, 0, 0 },
03281 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03282 & ifmt_m_rbi, { 0x4c000200 }
03283 },
03284
03285 {
03286 { 0, 0, 0, 0 },
03287 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03288 & ifmt_m_rbil, { 0x4c000300 }
03289 },
03290
03291 {
03292 { 0, 0, 0, 0 },
03293 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03294 & ifmt_m_rbir, { 0x4c000100 }
03295 },
03296
03297 {
03298 { 0, 0, 0, 0 },
03299 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03300 & ifmt_m_swwr, { 0x4c000006 }
03301 },
03302
03303 {
03304 { 0, 0, 0, 0 },
03305 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03306 & ifmt_m_swwru, { 0x4c000007 }
03307 },
03308
03309 {
03310 { 0, 0, 0, 0 },
03311 { { MNEM, ' ', OP (RS), 0 } },
03312 & ifmt_m_tstod, { 0x4c000027 }
03313 },
03314
03315 {
03316 { 0, 0, 0, 0 },
03317 { { MNEM, ' ', OP (RT), 0 } },
03318 & ifmt_m_unlk, { 0x4c000003 }
03319 },
03320
03321 {
03322 { 0, 0, 0, 0 },
03323 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03324 & ifmt_m_wba, { 0x4c000010 }
03325 },
03326
03327 {
03328 { 0, 0, 0, 0 },
03329 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03330 & ifmt_m_wbac, { 0x4c000012 }
03331 },
03332
03333 {
03334 { 0, 0, 0, 0 },
03335 { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
03336 & ifmt_m_wbau, { 0x4c000011 }
03337 },
03338
03339 {
03340 { 0, 0, 0, 0 },
03341 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03342 & ifmt_m_wbi, { 0x4c000600 }
03343 },
03344
03345 {
03346 { 0, 0, 0, 0 },
03347 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03348 & ifmt_m_wbic, { 0x4c000500 }
03349 },
03350
03351 {
03352 { 0, 0, 0, 0 },
03353 { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
03354 & ifmt_m_wbiu, { 0x4c000700 }
03355 },
03356 };
03357
03358 #undef A
03359 #undef OPERAND
03360 #undef MNEM
03361 #undef OP
03362
03363 #ifndef CGEN_ASM_HASH_P
03364 #define CGEN_ASM_HASH_P(insn) 1
03365 #endif
03366
03367 #ifndef CGEN_DIS_HASH_P
03368 #define CGEN_DIS_HASH_P(insn) 1
03369 #endif
03370
03371
03372
03373
03374 static int
03375 asm_hash_insn_p (insn)
03376 const CGEN_INSN *insn ATTRIBUTE_UNUSED;
03377 {
03378 return CGEN_ASM_HASH_P (insn);
03379 }
03380
03381 static int
03382 dis_hash_insn_p (insn)
03383 const CGEN_INSN *insn;
03384 {
03385
03386
03387 if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
03388 return 0;
03389 return CGEN_DIS_HASH_P (insn);
03390 }
03391
03392 #ifndef CGEN_ASM_HASH
03393 #define CGEN_ASM_HASH_SIZE 127
03394 #ifdef CGEN_MNEMONIC_OPERANDS
03395 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
03396 #else
03397 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
03398 #endif
03399 #endif
03400
03401
03402
03403
03404
03405
03406 #ifndef CGEN_DIS_HASH
03407 #define CGEN_DIS_HASH_SIZE 256
03408 #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
03409 #endif
03410
03411
03412
03413
03414 static unsigned int
03415 asm_hash_insn (mnem)
03416 const char * mnem;
03417 {
03418 return CGEN_ASM_HASH (mnem);
03419 }
03420
03421
03422
03423
03424 static unsigned int
03425 dis_hash_insn (buf, value)
03426 const char * buf ATTRIBUTE_UNUSED;
03427 CGEN_INSN_INT value ATTRIBUTE_UNUSED;
03428 {
03429 return CGEN_DIS_HASH (buf, value);
03430 }
03431
03432 static void set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
03433
03434
03435
03436 static void
03437 set_fields_bitsize (fields, size)
03438 CGEN_FIELDS *fields;
03439 int size;
03440 {
03441 CGEN_FIELDS_BITSIZE (fields) = size;
03442 }
03443
03444
03445
03446
03447 void
03448 iq2000_cgen_init_opcode_table (cd)
03449 CGEN_CPU_DESC cd;
03450 {
03451 int i;
03452 int num_macros = (sizeof (iq2000_cgen_macro_insn_table) /
03453 sizeof (iq2000_cgen_macro_insn_table[0]));
03454 const CGEN_IBASE *ib = & iq2000_cgen_macro_insn_table[0];
03455 const CGEN_OPCODE *oc = & iq2000_cgen_macro_insn_opcode_table[0];
03456 CGEN_INSN *insns = (CGEN_INSN *) xmalloc (num_macros * sizeof (CGEN_INSN));
03457 memset (insns, 0, num_macros * sizeof (CGEN_INSN));
03458 for (i = 0; i < num_macros; ++i)
03459 {
03460 insns[i].base = &ib[i];
03461 insns[i].opcode = &oc[i];
03462 iq2000_cgen_build_insn_regex (& insns[i]);
03463 }
03464 cd->macro_insn_table.init_entries = insns;
03465 cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
03466 cd->macro_insn_table.num_init_entries = num_macros;
03467
03468 oc = & iq2000_cgen_insn_opcode_table[0];
03469 insns = (CGEN_INSN *) cd->insn_table.init_entries;
03470 for (i = 0; i < MAX_INSNS; ++i)
03471 {
03472 insns[i].opcode = &oc[i];
03473 iq2000_cgen_build_insn_regex (& insns[i]);
03474 }
03475
03476 cd->sizeof_fields = sizeof (CGEN_FIELDS);
03477 cd->set_fields_bitsize = set_fields_bitsize;
03478
03479 cd->asm_hash_p = asm_hash_insn_p;
03480 cd->asm_hash = asm_hash_insn;
03481 cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
03482
03483 cd->dis_hash_p = dis_hash_insn_p;
03484 cd->dis_hash = dis_hash_insn;
03485 cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
03486 }