hw: AC97: make it more QOMconventional
[qemu/ar7.git] / disas / nanomips.h
blob84cc9a6dfcbfbbd1c443c58f25d5dd3a33762060
1 /*
2 * Header file for nanoMIPS disassembler component of QEMU
4 * Copyright (C) 2018 Wave Computing
5 * Copyright (C) 2018 Matthew Fortune <matthew.fortune@mips.com>
6 * Copyright (C) 2018 Aleksandar Markovic <aleksandar.markovic@wavecomp.com>
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 #ifndef NANOMIPS_DISASSEMBLER_H
23 #define NANOMIPS_DISASSEMBLER_H
25 #include <string>
27 typedef unsigned short uint16;
28 typedef unsigned int uint32;
29 typedef long long int64;
30 typedef unsigned long long uint64;
32 namespace img
34 typedef unsigned long long address;
38 class NMD
40 public:
42 enum TABLE_ENTRY_TYPE {
43 instruction,
44 call_instruction,
45 branch_instruction,
46 return_instruction,
47 reserved_block,
48 pool,
51 enum TABLE_ATTRIBUTE_TYPE {
52 MIPS64_ = 0x00000001,
53 XNP_ = 0x00000002,
54 XMMS_ = 0x00000004,
55 EVA_ = 0x00000008,
56 DSP_ = 0x00000010,
57 MT_ = 0x00000020,
58 EJTAG_ = 0x00000040,
59 TLBINV_ = 0x00000080,
60 CP0_ = 0x00000100,
61 CP1_ = 0x00000200,
62 CP2_ = 0x00000400,
63 UDI_ = 0x00000800,
64 MCU_ = 0x00001000,
65 VZ_ = 0x00002000,
66 TLB_ = 0x00004000,
67 MVH_ = 0x00008000,
68 ALL_ATTRIBUTES = 0xffffffffull,
72 NMD(img::address pc, TABLE_ATTRIBUTE_TYPE requested_instruction_categories)
73 : m_pc(pc)
74 , m_requested_instruction_categories(requested_instruction_categories)
78 int Disassemble(const uint16 *data, std::string & dis,
79 TABLE_ENTRY_TYPE & type);
81 private:
83 img::address m_pc;
84 TABLE_ATTRIBUTE_TYPE m_requested_instruction_categories;
86 typedef std::string(NMD:: *disassembly_function)(uint64 instruction);
87 typedef bool(NMD:: *conditional_function)(uint64 instruction);
89 struct Pool {
90 TABLE_ENTRY_TYPE type;
91 struct Pool *next_table;
92 int next_table_size;
93 int instructions_size;
94 uint64 mask;
95 uint64 value;
96 disassembly_function disassembly;
97 conditional_function condition;
98 uint64 attributes;
101 uint64 extract_op_code_value(const uint16 *data, int size);
102 int Disassemble(const uint16 *data, std::string & dis,
103 TABLE_ENTRY_TYPE & type, const Pool *table, int table_size);
105 uint64 renumber_registers(uint64 index, uint64 *register_list,
106 size_t register_list_size);
107 uint64 encode_gpr3(uint64 d);
108 uint64 encode_gpr3_store(uint64 d);
109 uint64 encode_rd1_from_rd(uint64 d);
110 uint64 encode_gpr4_zero(uint64 d);
111 uint64 encode_gpr4(uint64 d);
112 uint64 encode_rd2_reg1(uint64 d);
113 uint64 encode_rd2_reg2(uint64 d);
115 uint64 copy(uint64 d);
116 int64 copy(int64 d);
117 int64 neg_copy(uint64 d);
118 int64 neg_copy(int64 d);
119 uint64 encode_rs3_and_check_rs3_ge_rt3(uint64 d);
120 uint64 encode_rs3_and_check_rs3_lt_rt3(uint64 d);
121 uint64 encode_s_from_address(uint64 d);
122 uint64 encode_u_from_address(uint64 d);
123 uint64 encode_s_from_s_hi(uint64 d);
124 uint64 encode_count3_from_count(uint64 d);
125 uint64 encode_shift3_from_shift(uint64 d);
126 int64 encode_eu_from_s_li16(uint64 d);
127 uint64 encode_msbd_from_size(uint64 d);
128 uint64 encode_eu_from_u_andi16(uint64 d);
130 uint64 encode_msbd_from_pos_and_size(uint64 d);
132 uint64 encode_rt1_from_rt(uint64 d);
133 uint64 encode_lsb_from_pos_and_size(uint64 d);
135 std::string save_restore_list(uint64 rt, uint64 count, uint64 gp);
137 std::string GPR(uint64 reg);
138 std::string FPR(uint64 reg);
139 std::string AC(uint64 reg);
140 std::string IMMEDIATE(uint64 value);
141 std::string IMMEDIATE(int64 value);
142 std::string CPR(uint64 reg);
143 std::string ADDRESS(uint64 value, int instruction_size);
145 int64 extract_s_4_2_1_0(uint64 instruction);
146 int64 extr_sil0il0bs8_il15il8bs1Tmsb8(uint64 instruction);
147 int64 extr_sil0il10bs1_il1il1bs9Tmsb10(uint64 instruction);
148 int64 extr_sil0il11bs1_il1il1bs10Tmsb11(uint64 instruction);
149 int64 extr_sil0il14bs1_il1il1bs13Tmsb14(uint64 instruction);
150 int64 extr_sil0il16bs16_il16il0bs16Tmsb31(uint64 instruction);
151 int64 extr_sil0il21bs1_il1il1bs20Tmsb21(uint64 instruction);
152 int64 extr_sil0il25bs1_il1il1bs24Tmsb25(uint64 instruction);
153 int64 extr_sil0il31bs1_il2il21bs10_il12il12bs9Tmsb31(uint64 instruction);
154 int64 extr_sil0il7bs1_il1il1bs6Tmsb7(uint64 instruction);
155 int64 extr_sil11il0bs10Tmsb9(uint64 instruction);
156 int64 extract_shift_21_20_19_18_17_16(uint64 instruction);
157 int64 extr_sil2il2bs6_il15il8bs1Tmsb8(uint64 instruction);
158 int64 extr_sil3il3bs5_il15il8bs1Tmsb8(uint64 instruction);
160 uint64 extract_ac_13_12(uint64 instruction);
161 uint64 extract_bit_16_15_14_13_12_11(uint64 instruction);
162 uint64 extract_bit_23_22_21(uint64 instruction);
163 uint64 extract_c0s_20_19_18_17_16(uint64 instruction);
164 uint64 extract_code_17_to_0(uint64 instruction);
165 uint64 extract_code_18_to_0(uint64 instruction);
166 uint64 extract_code_1_0(uint64 instruction);
167 uint64 extract_code_2_1_0(uint64 instruction);
168 uint64 extract_code_25_24_23_22_21_20_19_18_17_16(uint64 instruction);
169 uint64 extract_cofun_25_24_23(uint64 instruction);
170 uint64 extract_count3_14_13_12(uint64 instruction);
171 uint64 extract_count_3_2_1_0(uint64 instruction);
172 uint64 extract_count_19_18_17_16(uint64 instruction);
173 uint64 extract_cs_20_19_18_17_16(uint64 instruction);
174 uint64 extract_cs_25_24_23_22_21(uint64 instruction);
175 uint64 extract_ct_25_24_23_22_21(uint64 instruction);
176 uint64 extract_eu_3_2_1_0(uint64 instruction);
177 uint64 extract_eu_6_5_4_3_2_1_0(uint64 instruction);
178 uint64 extract_fd_10_9_8_7_6(uint64 instruction);
179 uint64 extract_fs_15_14_13_12_11(uint64 instruction);
180 uint64 extract_ft_15_14_13_12_11(uint64 instruction);
181 uint64 extract_ft_20_19_18_17_16(uint64 instruction);
182 uint64 extract_gp_2(uint64 instruction);
183 uint64 extract_hint_25_24_23_22_21(uint64 instruction);
184 uint64 extract_hs_20_19_18_17_16(uint64 instruction);
185 uint64 extract_lsb_4_3_2_1_0(uint64 instruction);
186 uint64 extract_mask_20_19_18_17_16_15_14(uint64 instruction);
187 uint64 extract_msbt_10_9_8_7_6(uint64 instruction);
188 uint64 extract_op_25_24_23_22_21(uint64 instruction);
189 uint64 extract_op_25_to_3(uint64 instruction);
190 uint64 extract_rdl_25_24(uint64 instruction);
191 uint64 extract_rd2_3_8(uint64 instruction);
192 uint64 extract_rd3_3_2_1(uint64 instruction);
193 uint64 extract_rd_20_19_18_17_16(uint64 instruction);
194 uint64 extract_rs3_6_5_4(uint64 instruction);
195 uint64 extract_rs4_4_2_1_0(uint64 instruction);
196 uint64 extract_rs_4_3_2_1_0(uint64 instruction);
197 uint64 extract_rs_20_19_18_17_16(uint64 instruction);
198 uint64 extract_rsz4_4_2_1_0(uint64 instruction);
199 uint64 extract_rtl_11(uint64 instruction);
200 uint64 extract_rt3_9_8_7(uint64 instruction);
201 uint64 extract_rt4_9_7_6_5(uint64 instruction);
202 uint64 extract_rt_25_24_23_22_21(uint64 instruction);
203 uint64 extract_rt_41_40_39_38_37(uint64 instruction);
204 uint64 extract_rt_9_8_7_6_5(uint64 instruction);
205 uint64 extract_rtz3_9_8_7(uint64 instruction);
206 uint64 extract_rtz4_27_26_25_23_22_21(uint64 instruction);
207 uint64 extract_rtz4_9_7_6_5(uint64 instruction);
208 uint64 extract_ru_7_6_5_4_3(uint64 instruction);
209 uint64 extract_sa_15_14_13_12_11(uint64 instruction);
210 uint64 extract_sa_15_14_13_12(uint64 instruction);
211 uint64 extract_sa_15_14_13(uint64 instruction);
212 uint64 extract_sel_13_12_11(uint64 instruction);
213 uint64 extract_sel_15_14_13_12_11(uint64 instruction);
214 uint64 extract_shift3_2_1_0(uint64 instruction);
215 uint64 extract_shift_4_3_2_1_0(uint64 instruction);
216 uint64 extract_shift_5_4_3_2_1_0(uint64 instruction);
217 uint64 extract_shift_20_19_18_17_16(uint64 instruction);
218 uint64 extract_shift_10_9_8_7_6(uint64 instruction);
219 uint64 extract_shiftx_11_10_9_8_7_6(uint64 instruction);
220 uint64 extr_shiftxil7il1bs4Fmsb4(uint64 instruction);
221 uint64 extract_size_20_19_18_17_16(uint64 instruction);
222 uint64 extract_stripe_6(uint64 instruction);
223 uint64 extract_stype_20_19_18_17_16(uint64 instruction);
224 uint64 extract_u2_10_9(uint64 instruction);
225 uint64 extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction);
226 uint64 extract_u_15_to_0(uint64 instruction);
227 uint64 extract_u_17_to_0(uint64 instruction);
228 uint64 extract_u_1_0(uint64 instruction);
229 uint64 extr_uil0il1bs4Fmsb4(uint64 instruction);
230 uint64 extr_uil0il2bs3Fmsb4(uint64 instruction);
231 uint64 extr_uil0il2bs4Fmsb5(uint64 instruction);
232 uint64 extr_uil0il2bs5Fmsb6(uint64 instruction);
233 uint64 extr_uil0il2bs6Fmsb7(uint64 instruction);
234 uint64 extr_uil0il2bs7Fmsb8(uint64 instruction);
235 uint64 extr_uil0il32bs32Fmsb63(uint64 instruction);
236 uint64 extract_u_10(uint64 instruction);
237 uint64 extract_u_17_16_15_14_13_12_11(uint64 instruction);
238 uint64 extract_u_20_19_18_17_16_15_14_13(uint64 instruction);
239 uint64 extr_uil1il1bs17Fmsb17(uint64 instruction);
240 uint64 extr_uil1il1bs2Fmsb2(uint64 instruction);
241 uint64 extr_uil2il2bs16Fmsb17(uint64 instruction);
242 uint64 extr_uil2il2bs19Fmsb20(uint64 instruction);
243 uint64 extr_uil3il3bs18Fmsb20(uint64 instruction);
244 uint64 extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction);
245 uint64 extr_uil3il3bs9Fmsb11(uint64 instruction);
246 uint64 extr_uil4il4bs4Fmsb7(uint64 instruction);
247 uint64 extr_xil0il0bs12Fmsb11(uint64 instruction);
248 uint64 extr_xil0il0bs3_il4il0bs1Fmsb2(uint64 instruction);
249 uint64 extr_xil10il0bs1Fmsb0(uint64 instruction);
250 uint64 extr_xil10il0bs1_il11il0bs5Fmsb4(uint64 instruction);
251 uint64 extr_xil10il0bs1_il14il0bs2Fmsb1(uint64 instruction);
252 uint64 extr_xil10il0bs4_il22il0bs4Fmsb3(uint64 instruction);
253 uint64 extr_xil10il0bs6Fmsb5(uint64 instruction);
254 uint64 extr_xil11il0bs1Fmsb0(uint64 instruction);
255 uint64 extr_xil11il0bs5Fmsb4(uint64 instruction);
256 uint64 extr_xil12il0bs1Fmsb0(uint64 instruction);
257 uint64 extr_xil14il0bs1_il15il0bs1Fmsb0(uint64 instruction);
258 uint64 extr_xil14il0bs2Fmsb1(uint64 instruction);
259 uint64 extr_xil15il0bs1Fmsb0(uint64 instruction);
260 uint64 extr_xil16il0bs10Fmsb9(uint64 instruction);
261 uint64 extr_xil16il0bs5Fmsb4(uint64 instruction);
262 uint64 extr_xil17il0bs1Fmsb0(uint64 instruction);
263 uint64 extr_xil17il0bs9Fmsb8(uint64 instruction);
264 uint64 extr_xil21il0bs5Fmsb4(uint64 instruction);
265 uint64 extr_xil24il0bs1Fmsb0(uint64 instruction);
266 uint64 extr_xil2il0bs1_il15il0bs1Fmsb0(uint64 instruction);
267 uint64 extr_xil6il0bs3Fmsb2(uint64 instruction);
268 uint64 extr_xil6il0bs3_il10il0bs1Fmsb2(uint64 instruction);
269 uint64 extr_xil9il0bs2Fmsb1(uint64 instruction);
270 uint64 extr_xil9il0bs3Fmsb2(uint64 instruction);
271 uint64 extr_xil9il0bs3_il16il0bs5Fmsb4(uint64 instruction);
273 bool ADDIU_32__cond(uint64 instruction);
274 bool ADDIU_RS5__cond(uint64 instruction);
275 bool BALRSC_cond(uint64 instruction);
276 bool BEQC_16__cond(uint64 instruction);
277 bool BNEC_16__cond(uint64 instruction);
278 bool MOVE_cond(uint64 instruction);
279 bool P16_BR1_cond(uint64 instruction);
280 bool PREF_S9__cond(uint64 instruction);
281 bool PREFE_cond(uint64 instruction);
282 bool SLTU_cond(uint64 instruction);
284 std::string ABS_D(uint64 instruction);
285 std::string ABS_S(uint64 instruction);
286 std::string ABSQ_S_PH(uint64 instruction);
287 std::string ABSQ_S_QB(uint64 instruction);
288 std::string ABSQ_S_W(uint64 instruction);
289 std::string ACLR(uint64 instruction);
290 std::string ADD(uint64 instruction);
291 std::string ADD_D(uint64 instruction);
292 std::string ADD_S(uint64 instruction);
293 std::string ADDIU_32_(uint64 instruction);
294 std::string ADDIU_48_(uint64 instruction);
295 std::string ADDIU_GP48_(uint64 instruction);
296 std::string ADDIU_GP_B_(uint64 instruction);
297 std::string ADDIU_GP_W_(uint64 instruction);
298 std::string ADDIU_NEG_(uint64 instruction);
299 std::string ADDIU_R1_SP_(uint64 instruction);
300 std::string ADDIU_R2_(uint64 instruction);
301 std::string ADDIU_RS5_(uint64 instruction);
302 std::string ADDIUPC_32_(uint64 instruction);
303 std::string ADDIUPC_48_(uint64 instruction);
304 std::string ADDQ_PH(uint64 instruction);
305 std::string ADDQ_S_PH(uint64 instruction);
306 std::string ADDQ_S_W(uint64 instruction);
307 std::string ADDQH_PH(uint64 instruction);
308 std::string ADDQH_R_PH(uint64 instruction);
309 std::string ADDQH_R_W(uint64 instruction);
310 std::string ADDQH_W(uint64 instruction);
311 std::string ADDSC(uint64 instruction);
312 std::string ADDU_16_(uint64 instruction);
313 std::string ADDU_32_(uint64 instruction);
314 std::string ADDU_4X4_(uint64 instruction);
315 std::string ADDU_PH(uint64 instruction);
316 std::string ADDU_QB(uint64 instruction);
317 std::string ADDU_S_PH(uint64 instruction);
318 std::string ADDU_S_QB(uint64 instruction);
319 std::string ADDUH_QB(uint64 instruction);
320 std::string ADDUH_R_QB(uint64 instruction);
321 std::string ADDWC(uint64 instruction);
322 std::string ALUIPC(uint64 instruction);
323 std::string AND_16_(uint64 instruction);
324 std::string AND_32_(uint64 instruction);
325 std::string ANDI_16_(uint64 instruction);
326 std::string ANDI_32_(uint64 instruction);
327 std::string APPEND(uint64 instruction);
328 std::string ASET(uint64 instruction);
329 std::string BALC_16_(uint64 instruction);
330 std::string BALC_32_(uint64 instruction);
331 std::string BALRSC(uint64 instruction);
332 std::string BBEQZC(uint64 instruction);
333 std::string BBNEZC(uint64 instruction);
334 std::string BC_16_(uint64 instruction);
335 std::string BC_32_(uint64 instruction);
336 std::string BC1EQZC(uint64 instruction);
337 std::string BC1NEZC(uint64 instruction);
338 std::string BC2EQZC(uint64 instruction);
339 std::string BC2NEZC(uint64 instruction);
340 std::string BEQC_16_(uint64 instruction);
341 std::string BEQC_32_(uint64 instruction);
342 std::string BEQIC(uint64 instruction);
343 std::string BEQZC_16_(uint64 instruction);
344 std::string BGEC(uint64 instruction);
345 std::string BGEIC(uint64 instruction);
346 std::string BGEIUC(uint64 instruction);
347 std::string BGEUC(uint64 instruction);
348 std::string BLTC(uint64 instruction);
349 std::string BLTIC(uint64 instruction);
350 std::string BLTIUC(uint64 instruction);
351 std::string BLTUC(uint64 instruction);
352 std::string BNEC_16_(uint64 instruction);
353 std::string BNEC_32_(uint64 instruction);
354 std::string BNEIC(uint64 instruction);
355 std::string BNEZC_16_(uint64 instruction);
356 std::string BPOSGE32C(uint64 instruction);
357 std::string BREAK_16_(uint64 instruction);
358 std::string BREAK_32_(uint64 instruction);
359 std::string BRSC(uint64 instruction);
360 std::string CACHE(uint64 instruction);
361 std::string CACHEE(uint64 instruction);
362 std::string CEIL_L_D(uint64 instruction);
363 std::string CEIL_L_S(uint64 instruction);
364 std::string CEIL_W_D(uint64 instruction);
365 std::string CEIL_W_S(uint64 instruction);
366 std::string CFC1(uint64 instruction);
367 std::string CFC2(uint64 instruction);
368 std::string CLASS_D(uint64 instruction);
369 std::string CLASS_S(uint64 instruction);
370 std::string CLO(uint64 instruction);
371 std::string CLZ(uint64 instruction);
372 std::string CMP_AF_D(uint64 instruction);
373 std::string CMP_AF_S(uint64 instruction);
374 std::string CMP_EQ_D(uint64 instruction);
375 std::string CMP_EQ_PH(uint64 instruction);
376 std::string CMP_EQ_S(uint64 instruction);
377 std::string CMP_LE_D(uint64 instruction);
378 std::string CMP_LE_PH(uint64 instruction);
379 std::string CMP_LE_S(uint64 instruction);
380 std::string CMP_LT_D(uint64 instruction);
381 std::string CMP_LT_PH(uint64 instruction);
382 std::string CMP_LT_S(uint64 instruction);
383 std::string CMP_NE_D(uint64 instruction);
384 std::string CMP_NE_S(uint64 instruction);
385 std::string CMP_OR_D(uint64 instruction);
386 std::string CMP_OR_S(uint64 instruction);
387 std::string CMP_SAF_D(uint64 instruction);
388 std::string CMP_SAF_S(uint64 instruction);
389 std::string CMP_SEQ_D(uint64 instruction);
390 std::string CMP_SEQ_S(uint64 instruction);
391 std::string CMP_SLE_D(uint64 instruction);
392 std::string CMP_SLE_S(uint64 instruction);
393 std::string CMP_SLT_D(uint64 instruction);
394 std::string CMP_SLT_S(uint64 instruction);
395 std::string CMP_SNE_D(uint64 instruction);
396 std::string CMP_SNE_S(uint64 instruction);
397 std::string CMP_SOR_D(uint64 instruction);
398 std::string CMP_SOR_S(uint64 instruction);
399 std::string CMP_SUEQ_D(uint64 instruction);
400 std::string CMP_SUEQ_S(uint64 instruction);
401 std::string CMP_SULE_D(uint64 instruction);
402 std::string CMP_SULE_S(uint64 instruction);
403 std::string CMP_SULT_D(uint64 instruction);
404 std::string CMP_SULT_S(uint64 instruction);
405 std::string CMP_SUN_D(uint64 instruction);
406 std::string CMP_SUN_S(uint64 instruction);
407 std::string CMP_SUNE_D(uint64 instruction);
408 std::string CMP_SUNE_S(uint64 instruction);
409 std::string CMP_UEQ_D(uint64 instruction);
410 std::string CMP_UEQ_S(uint64 instruction);
411 std::string CMP_ULE_D(uint64 instruction);
412 std::string CMP_ULE_S(uint64 instruction);
413 std::string CMP_ULT_D(uint64 instruction);
414 std::string CMP_ULT_S(uint64 instruction);
415 std::string CMP_UN_D(uint64 instruction);
416 std::string CMP_UN_S(uint64 instruction);
417 std::string CMP_UNE_D(uint64 instruction);
418 std::string CMP_UNE_S(uint64 instruction);
419 std::string CMPGDU_EQ_QB(uint64 instruction);
420 std::string CMPGDU_LE_QB(uint64 instruction);
421 std::string CMPGDU_LT_QB(uint64 instruction);
422 std::string CMPGU_EQ_QB(uint64 instruction);
423 std::string CMPGU_LE_QB(uint64 instruction);
424 std::string CMPGU_LT_QB(uint64 instruction);
425 std::string CMPU_EQ_QB(uint64 instruction);
426 std::string CMPU_LE_QB(uint64 instruction);
427 std::string CMPU_LT_QB(uint64 instruction);
428 std::string COP2_1(uint64 instruction);
429 std::string CTC1(uint64 instruction);
430 std::string CTC2(uint64 instruction);
431 std::string CVT_D_L(uint64 instruction);
432 std::string CVT_D_S(uint64 instruction);
433 std::string CVT_D_W(uint64 instruction);
434 std::string CVT_L_D(uint64 instruction);
435 std::string CVT_L_S(uint64 instruction);
436 std::string CVT_S_D(uint64 instruction);
437 std::string CVT_S_L(uint64 instruction);
438 std::string CVT_S_PL(uint64 instruction);
439 std::string CVT_S_PU(uint64 instruction);
440 std::string CVT_S_W(uint64 instruction);
441 std::string CVT_W_D(uint64 instruction);
442 std::string CVT_W_S(uint64 instruction);
443 std::string DADDIU_48_(uint64 instruction);
444 std::string DADDIU_NEG_(uint64 instruction);
445 std::string DADDIU_U12_(uint64 instruction);
446 std::string DADD(uint64 instruction);
447 std::string DADDU(uint64 instruction);
448 std::string DCLO(uint64 instruction);
449 std::string DCLZ(uint64 instruction);
450 std::string DDIV(uint64 instruction);
451 std::string DDIVU(uint64 instruction);
452 std::string DERET(uint64 instruction);
453 std::string DEXTM(uint64 instruction);
454 std::string DEXT(uint64 instruction);
455 std::string DEXTU(uint64 instruction);
456 std::string DINSM(uint64 instruction);
457 std::string DINS(uint64 instruction);
458 std::string DINSU(uint64 instruction);
459 std::string DI(uint64 instruction);
460 std::string DIV(uint64 instruction);
461 std::string DIV_D(uint64 instruction);
462 std::string DIV_S(uint64 instruction);
463 std::string DIVU(uint64 instruction);
464 std::string DLSA(uint64 instruction);
465 std::string DLUI_48_(uint64 instruction);
466 std::string DMFC0(uint64 instruction);
467 std::string DMFC1(uint64 instruction);
468 std::string DMFC2(uint64 instruction);
469 std::string DMFGC0(uint64 instruction);
470 std::string DMOD(uint64 instruction);
471 std::string DMODU(uint64 instruction);
472 std::string DMTC0(uint64 instruction);
473 std::string DMTC1(uint64 instruction);
474 std::string DMTC2(uint64 instruction);
475 std::string DMTGC0(uint64 instruction);
476 std::string DMT(uint64 instruction);
477 std::string DMUH(uint64 instruction);
478 std::string DMUHU(uint64 instruction);
479 std::string DMUL(uint64 instruction);
480 std::string DMULU(uint64 instruction);
481 std::string DPAQ_S_W_PH(uint64 instruction);
482 std::string DPAQ_SA_L_W(uint64 instruction);
483 std::string DPAQX_S_W_PH(uint64 instruction);
484 std::string DPAQX_SA_W_PH(uint64 instruction);
485 std::string DPAU_H_QBL(uint64 instruction);
486 std::string DPAU_H_QBR(uint64 instruction);
487 std::string DPA_W_PH(uint64 instruction);
488 std::string DPAX_W_PH(uint64 instruction);
489 std::string DPS_W_PH(uint64 instruction);
490 std::string DPSQ_SA_L_W(uint64 instruction);
491 std::string DPSQ_S_W_PH(uint64 instruction);
492 std::string DPSQX_SA_W_PH(uint64 instruction);
493 std::string DPSQX_S_W_PH(uint64 instruction);
494 std::string DPSU_H_QBL(uint64 instruction);
495 std::string DPSU_H_QBR(uint64 instruction);
496 std::string DPSX_W_PH(uint64 instruction);
497 std::string DROTR(uint64 instruction);
498 std::string DROTR32(uint64 instruction);
499 std::string DROTRV(uint64 instruction);
500 std::string DROTX(uint64 instruction);
501 std::string DSLL(uint64 instruction);
502 std::string DSLL32(uint64 instruction);
503 std::string DSLLV(uint64 instruction);
504 std::string DSRA(uint64 instruction);
505 std::string DSRA32(uint64 instruction);
506 std::string DSRAV(uint64 instruction);
507 std::string DSRL32(uint64 instruction);
508 std::string DSRL(uint64 instruction);
509 std::string DSRLV(uint64 instruction);
510 std::string DSUB(uint64 instruction);
511 std::string DSUBU(uint64 instruction);
512 std::string DVP(uint64 instruction);
513 std::string DVPE(uint64 instruction);
514 std::string EHB(uint64 instruction);
515 std::string EI(uint64 instruction);
516 std::string EMT(uint64 instruction);
517 std::string ERET(uint64 instruction);
518 std::string ERETNC(uint64 instruction);
519 std::string EVP(uint64 instruction);
520 std::string EVPE(uint64 instruction);
521 std::string EXT(uint64 instruction);
522 std::string EXTD(uint64 instruction);
523 std::string EXTD32(uint64 instruction);
524 std::string EXTP(uint64 instruction);
525 std::string EXTPDP(uint64 instruction);
526 std::string EXTPDPV(uint64 instruction);
527 std::string EXTPV(uint64 instruction);
528 std::string EXTR_RS_W(uint64 instruction);
529 std::string EXTR_R_W(uint64 instruction);
530 std::string EXTR_S_H(uint64 instruction);
531 std::string EXTR_W(uint64 instruction);
532 std::string EXTRV_R_W(uint64 instruction);
533 std::string EXTRV_RS_W(uint64 instruction);
534 std::string EXTRV_S_H(uint64 instruction);
535 std::string EXTRV_W(uint64 instruction);
536 std::string EXTW(uint64 instruction);
537 std::string FLOOR_L_D(uint64 instruction);
538 std::string FLOOR_L_S(uint64 instruction);
539 std::string FLOOR_W_D(uint64 instruction);
540 std::string FLOOR_W_S(uint64 instruction);
541 std::string FORK(uint64 instruction);
542 std::string HYPCALL(uint64 instruction);
543 std::string HYPCALL_16_(uint64 instruction);
544 std::string INS(uint64 instruction);
545 std::string INSV(uint64 instruction);
546 std::string IRET(uint64 instruction);
547 std::string JALRC_16_(uint64 instruction);
548 std::string JALRC_32_(uint64 instruction);
549 std::string JALRC_HB(uint64 instruction);
550 std::string JRC(uint64 instruction);
551 std::string LB_16_(uint64 instruction);
552 std::string LB_GP_(uint64 instruction);
553 std::string LB_S9_(uint64 instruction);
554 std::string LB_U12_(uint64 instruction);
555 std::string LBE(uint64 instruction);
556 std::string LBU_16_(uint64 instruction);
557 std::string LBU_GP_(uint64 instruction);
558 std::string LBU_S9_(uint64 instruction);
559 std::string LBU_U12_(uint64 instruction);
560 std::string LBUE(uint64 instruction);
561 std::string LBUX(uint64 instruction);
562 std::string LBX(uint64 instruction);
563 std::string LD_GP_(uint64 instruction);
564 std::string LD_S9_(uint64 instruction);
565 std::string LD_U12_(uint64 instruction);
566 std::string LDC1_GP_(uint64 instruction);
567 std::string LDC1_S9_(uint64 instruction);
568 std::string LDC1_U12_(uint64 instruction);
569 std::string LDC1X(uint64 instruction);
570 std::string LDC1XS(uint64 instruction);
571 std::string LDC2(uint64 instruction);
572 std::string LDM(uint64 instruction);
573 std::string LDPC_48_(uint64 instruction);
574 std::string LDX(uint64 instruction);
575 std::string LDXS(uint64 instruction);
576 std::string LH_16_(uint64 instruction);
577 std::string LH_GP_(uint64 instruction);
578 std::string LH_S9_(uint64 instruction);
579 std::string LH_U12_(uint64 instruction);
580 std::string LHE(uint64 instruction);
581 std::string LHU_16_(uint64 instruction);
582 std::string LHU_GP_(uint64 instruction);
583 std::string LHU_S9_(uint64 instruction);
584 std::string LHU_U12_(uint64 instruction);
585 std::string LHUE(uint64 instruction);
586 std::string LHUX(uint64 instruction);
587 std::string LHUXS(uint64 instruction);
588 std::string LHX(uint64 instruction);
589 std::string LHXS(uint64 instruction);
590 std::string LI_16_(uint64 instruction);
591 std::string LI_48_(uint64 instruction);
592 std::string LL(uint64 instruction);
593 std::string LLD(uint64 instruction);
594 std::string LLDP(uint64 instruction);
595 std::string LLE(uint64 instruction);
596 std::string LLWP(uint64 instruction);
597 std::string LLWPE(uint64 instruction);
598 std::string LSA(uint64 instruction);
599 std::string LUI(uint64 instruction);
600 std::string LW_16_(uint64 instruction);
601 std::string LW_4X4_(uint64 instruction);
602 std::string LWC1_GP_(uint64 instruction);
603 std::string LWC1_S9_(uint64 instruction);
604 std::string LWC1_U12_(uint64 instruction);
605 std::string LWC1X(uint64 instruction);
606 std::string LWC1XS(uint64 instruction);
607 std::string LWC2(uint64 instruction);
608 std::string LWE(uint64 instruction);
609 std::string LW_GP_(uint64 instruction);
610 std::string LW_GP16_(uint64 instruction);
611 std::string LWM(uint64 instruction);
612 std::string LWPC_48_(uint64 instruction);
613 std::string LW_S9_(uint64 instruction);
614 std::string LW_SP_(uint64 instruction);
615 std::string LW_U12_(uint64 instruction);
616 std::string LWU_GP_(uint64 instruction);
617 std::string LWU_S9_(uint64 instruction);
618 std::string LWU_U12_(uint64 instruction);
619 std::string LWUX(uint64 instruction);
620 std::string LWUXS(uint64 instruction);
621 std::string LWX(uint64 instruction);
622 std::string LWXS_16_(uint64 instruction);
623 std::string LWXS_32_(uint64 instruction);
624 std::string MADD_DSP_(uint64 instruction);
625 std::string MADDF_D(uint64 instruction);
626 std::string MADDF_S(uint64 instruction);
627 std::string MADDU_DSP_(uint64 instruction);
628 std::string MAQ_S_W_PHL(uint64 instruction);
629 std::string MAQ_S_W_PHR(uint64 instruction);
630 std::string MAQ_SA_W_PHL(uint64 instruction);
631 std::string MAQ_SA_W_PHR(uint64 instruction);
632 std::string MAX_D(uint64 instruction);
633 std::string MAX_S(uint64 instruction);
634 std::string MAXA_D(uint64 instruction);
635 std::string MAXA_S(uint64 instruction);
636 std::string MFC0(uint64 instruction);
637 std::string MFC1(uint64 instruction);
638 std::string MFC2(uint64 instruction);
639 std::string MFGC0(uint64 instruction);
640 std::string MFHC0(uint64 instruction);
641 std::string MFHC1(uint64 instruction);
642 std::string MFHC2(uint64 instruction);
643 std::string MFHGC0(uint64 instruction);
644 std::string MFHI_DSP_(uint64 instruction);
645 std::string MFHTR(uint64 instruction);
646 std::string MFLO_DSP_(uint64 instruction);
647 std::string MFTR(uint64 instruction);
648 std::string MIN_D(uint64 instruction);
649 std::string MIN_S(uint64 instruction);
650 std::string MINA_D(uint64 instruction);
651 std::string MINA_S(uint64 instruction);
652 std::string MOD(uint64 instruction);
653 std::string MODSUB(uint64 instruction);
654 std::string MODU(uint64 instruction);
655 std::string MOV_D(uint64 instruction);
656 std::string MOV_S(uint64 instruction);
657 std::string MOVE_BALC(uint64 instruction);
658 std::string MOVEP(uint64 instruction);
659 std::string MOVEP_REV_(uint64 instruction);
660 std::string MOVE(uint64 instruction);
661 std::string MOVN(uint64 instruction);
662 std::string MOVZ(uint64 instruction);
663 std::string MSUB_DSP_(uint64 instruction);
664 std::string MSUBF_D(uint64 instruction);
665 std::string MSUBF_S(uint64 instruction);
666 std::string MSUBU_DSP_(uint64 instruction);
667 std::string MTC0(uint64 instruction);
668 std::string MTC1(uint64 instruction);
669 std::string MTC2(uint64 instruction);
670 std::string MTGC0(uint64 instruction);
671 std::string MTHC0(uint64 instruction);
672 std::string MTHC1(uint64 instruction);
673 std::string MTHC2(uint64 instruction);
674 std::string MTHGC0(uint64 instruction);
675 std::string MTHI_DSP_(uint64 instruction);
676 std::string MTHLIP(uint64 instruction);
677 std::string MTHTR(uint64 instruction);
678 std::string MTLO_DSP_(uint64 instruction);
679 std::string MTTR(uint64 instruction);
680 std::string MUH(uint64 instruction);
681 std::string MUHU(uint64 instruction);
682 std::string MUL_32_(uint64 instruction);
683 std::string MUL_4X4_(uint64 instruction);
684 std::string MUL_D(uint64 instruction);
685 std::string MUL_PH(uint64 instruction);
686 std::string MUL_S(uint64 instruction);
687 std::string MUL_S_PH(uint64 instruction);
688 std::string MULEQ_S_W_PHL(uint64 instruction);
689 std::string MULEQ_S_W_PHR(uint64 instruction);
690 std::string MULEU_S_PH_QBL(uint64 instruction);
691 std::string MULEU_S_PH_QBR(uint64 instruction);
692 std::string MULQ_RS_PH(uint64 instruction);
693 std::string MULQ_RS_W(uint64 instruction);
694 std::string MULQ_S_PH(uint64 instruction);
695 std::string MULQ_S_W(uint64 instruction);
696 std::string MULSA_W_PH(uint64 instruction);
697 std::string MULSAQ_S_W_PH(uint64 instruction);
698 std::string MULT_DSP_(uint64 instruction);
699 std::string MULTU_DSP_(uint64 instruction);
700 std::string MULU(uint64 instruction);
701 std::string NEG_D(uint64 instruction);
702 std::string NEG_S(uint64 instruction);
703 std::string NOP_16_(uint64 instruction);
704 std::string NOP_32_(uint64 instruction);
705 std::string NOR(uint64 instruction);
706 std::string NOT_16_(uint64 instruction);
707 std::string OR_16_(uint64 instruction);
708 std::string OR_32_(uint64 instruction);
709 std::string ORI(uint64 instruction);
710 std::string PACKRL_PH(uint64 instruction);
711 std::string PAUSE(uint64 instruction);
712 std::string PICK_PH(uint64 instruction);
713 std::string PICK_QB(uint64 instruction);
714 std::string PRECEQ_W_PHL(uint64 instruction);
715 std::string PRECEQ_W_PHR(uint64 instruction);
716 std::string PRECEQU_PH_QBL(uint64 instruction);
717 std::string PRECEQU_PH_QBLA(uint64 instruction);
718 std::string PRECEQU_PH_QBR(uint64 instruction);
719 std::string PRECEQU_PH_QBRA(uint64 instruction);
720 std::string PRECEU_PH_QBL(uint64 instruction);
721 std::string PRECEU_PH_QBLA(uint64 instruction);
722 std::string PRECEU_PH_QBR(uint64 instruction);
723 std::string PRECEU_PH_QBRA(uint64 instruction);
724 std::string PRECR_QB_PH(uint64 instruction);
725 std::string PRECR_SRA_PH_W(uint64 instruction);
726 std::string PRECR_SRA_R_PH_W(uint64 instruction);
727 std::string PRECRQ_PH_W(uint64 instruction);
728 std::string PRECRQ_QB_PH(uint64 instruction);
729 std::string PRECRQ_RS_PH_W(uint64 instruction);
730 std::string PRECRQU_S_QB_PH(uint64 instruction);
731 std::string PREF_S9_(uint64 instruction);
732 std::string PREF_U12_(uint64 instruction);
733 std::string PREFE(uint64 instruction);
734 std::string PREPEND(uint64 instruction);
735 std::string RADDU_W_QB(uint64 instruction);
736 std::string RDDSP(uint64 instruction);
737 std::string RDHWR(uint64 instruction);
738 std::string RDPGPR(uint64 instruction);
739 std::string RECIP_D(uint64 instruction);
740 std::string RECIP_S(uint64 instruction);
741 std::string REPL_PH(uint64 instruction);
742 std::string REPL_QB(uint64 instruction);
743 std::string REPLV_PH(uint64 instruction);
744 std::string REPLV_QB(uint64 instruction);
745 std::string RESTORE_32_(uint64 instruction);
746 std::string RESTORE_JRC_16_(uint64 instruction);
747 std::string RESTORE_JRC_32_(uint64 instruction);
748 std::string RESTOREF(uint64 instruction);
749 std::string RINT_D(uint64 instruction);
750 std::string RINT_S(uint64 instruction);
751 std::string ROTR(uint64 instruction);
752 std::string ROTRV(uint64 instruction);
753 std::string ROTX(uint64 instruction);
754 std::string ROUND_L_D(uint64 instruction);
755 std::string ROUND_L_S(uint64 instruction);
756 std::string ROUND_W_D(uint64 instruction);
757 std::string ROUND_W_S(uint64 instruction);
758 std::string RSQRT_D(uint64 instruction);
759 std::string RSQRT_S(uint64 instruction);
760 std::string SAVE_16_(uint64 instruction);
761 std::string SAVE_32_(uint64 instruction);
762 std::string SAVEF(uint64 instruction);
763 std::string SB_16_(uint64 instruction);
764 std::string SB_GP_(uint64 instruction);
765 std::string SB_S9_(uint64 instruction);
766 std::string SB_U12_(uint64 instruction);
767 std::string SBE(uint64 instruction);
768 std::string SBX(uint64 instruction);
769 std::string SC(uint64 instruction);
770 std::string SCD(uint64 instruction);
771 std::string SCDP(uint64 instruction);
772 std::string SCE(uint64 instruction);
773 std::string SCWP(uint64 instruction);
774 std::string SCWPE(uint64 instruction);
775 std::string SD_GP_(uint64 instruction);
776 std::string SD_S9_(uint64 instruction);
777 std::string SD_U12_(uint64 instruction);
778 std::string SDBBP_16_(uint64 instruction);
779 std::string SDBBP_32_(uint64 instruction);
780 std::string SDC1_GP_(uint64 instruction);
781 std::string SDC1_S9_(uint64 instruction);
782 std::string SDC1_U12_(uint64 instruction);
783 std::string SDC1X(uint64 instruction);
784 std::string SDC1XS(uint64 instruction);
785 std::string SDC2(uint64 instruction);
786 std::string SDM(uint64 instruction);
787 std::string SDPC_48_(uint64 instruction);
788 std::string SDX(uint64 instruction);
789 std::string SDXS(uint64 instruction);
790 std::string SEB(uint64 instruction);
791 std::string SEH(uint64 instruction);
792 std::string SEL_D(uint64 instruction);
793 std::string SEL_S(uint64 instruction);
794 std::string SELEQZ_D(uint64 instruction);
795 std::string SELEQZ_S(uint64 instruction);
796 std::string SELNEZ_D(uint64 instruction);
797 std::string SELNEZ_S(uint64 instruction);
798 std::string SEQI(uint64 instruction);
799 std::string SH_16_(uint64 instruction);
800 std::string SH_GP_(uint64 instruction);
801 std::string SH_S9_(uint64 instruction);
802 std::string SH_U12_(uint64 instruction);
803 std::string SHE(uint64 instruction);
804 std::string SHILO(uint64 instruction);
805 std::string SHILOV(uint64 instruction);
806 std::string SHLL_PH(uint64 instruction);
807 std::string SHLL_QB(uint64 instruction);
808 std::string SHLL_S_PH(uint64 instruction);
809 std::string SHLL_S_W(uint64 instruction);
810 std::string SHLLV_PH(uint64 instruction);
811 std::string SHLLV_QB(uint64 instruction);
812 std::string SHLLV_S_PH(uint64 instruction);
813 std::string SHLLV_S_W(uint64 instruction);
814 std::string SHRA_PH(uint64 instruction);
815 std::string SHRA_QB(uint64 instruction);
816 std::string SHRA_R_PH(uint64 instruction);
817 std::string SHRA_R_QB(uint64 instruction);
818 std::string SHRA_R_W(uint64 instruction);
819 std::string SHRAV_PH(uint64 instruction);
820 std::string SHRAV_QB(uint64 instruction);
821 std::string SHRAV_R_PH(uint64 instruction);
822 std::string SHRAV_R_QB(uint64 instruction);
823 std::string SHRAV_R_W(uint64 instruction);
824 std::string SHRL_PH(uint64 instruction);
825 std::string SHRL_QB(uint64 instruction);
826 std::string SHRLV_PH(uint64 instruction);
827 std::string SHRLV_QB(uint64 instruction);
828 std::string SHX(uint64 instruction);
829 std::string SHXS(uint64 instruction);
830 std::string SIGRIE(uint64 instruction);
831 std::string SLL_16_(uint64 instruction);
832 std::string SLL_32_(uint64 instruction);
833 std::string SLLV(uint64 instruction);
834 std::string SLT(uint64 instruction);
835 std::string SLTI(uint64 instruction);
836 std::string SLTIU(uint64 instruction);
837 std::string SLTU(uint64 instruction);
838 std::string SOV(uint64 instruction);
839 std::string SPECIAL2(uint64 instruction);
840 std::string SQRT_D(uint64 instruction);
841 std::string SQRT_S(uint64 instruction);
842 std::string SRA(uint64 instruction);
843 std::string SRAV(uint64 instruction);
844 std::string SRL_16_(uint64 instruction);
845 std::string SRL_32_(uint64 instruction);
846 std::string SRLV(uint64 instruction);
847 std::string SUB(uint64 instruction);
848 std::string SUB_D(uint64 instruction);
849 std::string SUB_S(uint64 instruction);
850 std::string SUBQ_PH(uint64 instruction);
851 std::string SUBQ_S_PH(uint64 instruction);
852 std::string SUBQ_S_W(uint64 instruction);
853 std::string SUBQH_PH(uint64 instruction);
854 std::string SUBQH_R_PH(uint64 instruction);
855 std::string SUBQH_R_W(uint64 instruction);
856 std::string SUBQH_W(uint64 instruction);
857 std::string SUBU_16_(uint64 instruction);
858 std::string SUBU_32_(uint64 instruction);
859 std::string SUBU_PH(uint64 instruction);
860 std::string SUBU_QB(uint64 instruction);
861 std::string SUBU_S_PH(uint64 instruction);
862 std::string SUBU_S_QB(uint64 instruction);
863 std::string SUBUH_QB(uint64 instruction);
864 std::string SUBUH_R_QB(uint64 instruction);
865 std::string SW_16_(uint64 instruction);
866 std::string SW_4X4_(uint64 instruction);
867 std::string SW_GP16_(uint64 instruction);
868 std::string SW_GP_(uint64 instruction);
869 std::string SW_S9_(uint64 instruction);
870 std::string SW_SP_(uint64 instruction);
871 std::string SW_U12_(uint64 instruction);
872 std::string SWC1_GP_(uint64 instruction);
873 std::string SWC1_S9_(uint64 instruction);
874 std::string SWC1_U12_(uint64 instruction);
875 std::string SWC1X(uint64 instruction);
876 std::string SWC1XS(uint64 instruction);
877 std::string SWC2(uint64 instruction);
878 std::string SWE(uint64 instruction);
879 std::string SWM(uint64 instruction);
880 std::string SWPC_48_(uint64 instruction);
881 std::string SWX(uint64 instruction);
882 std::string SWXS(uint64 instruction);
883 std::string SYNC(uint64 instruction);
884 std::string SYNCI(uint64 instruction);
885 std::string SYNCIE(uint64 instruction);
886 std::string SYSCALL_16_(uint64 instruction);
887 std::string SYSCALL_32_(uint64 instruction);
888 std::string TEQ(uint64 instruction);
889 std::string TLBGINV(uint64 instruction);
890 std::string TLBGINVF(uint64 instruction);
891 std::string TLBGP(uint64 instruction);
892 std::string TLBGR(uint64 instruction);
893 std::string TLBGWI(uint64 instruction);
894 std::string TLBGWR(uint64 instruction);
895 std::string TLBINV(uint64 instruction);
896 std::string TLBINVF(uint64 instruction);
897 std::string TLBP(uint64 instruction);
898 std::string TLBR(uint64 instruction);
899 std::string TLBWI(uint64 instruction);
900 std::string TLBWR(uint64 instruction);
901 std::string TNE(uint64 instruction);
902 std::string TRUNC_L_D(uint64 instruction);
903 std::string TRUNC_L_S(uint64 instruction);
904 std::string TRUNC_W_D(uint64 instruction);
905 std::string TRUNC_W_S(uint64 instruction);
906 std::string UALDM(uint64 instruction);
907 std::string UALH(uint64 instruction);
908 std::string UALWM(uint64 instruction);
909 std::string UASDM(uint64 instruction);
910 std::string UASH(uint64 instruction);
911 std::string UASWM(uint64 instruction);
912 std::string UDI(uint64 instruction);
913 std::string WAIT(uint64 instruction);
914 std::string WRDSP(uint64 instruction);
915 std::string WRPGPR(uint64 instruction);
916 std::string XOR_16_(uint64 instruction);
917 std::string XOR_32_(uint64 instruction);
918 std::string XORI(uint64 instruction);
919 std::string YIELD(uint64 instruction);
921 static Pool P_SYSCALL[2];
922 static Pool P_RI[4];
923 static Pool P_ADDIU[2];
924 static Pool P_TRAP[2];
925 static Pool P_CMOVE[2];
926 static Pool P_D_MT_VPE[2];
927 static Pool P_E_MT_VPE[2];
928 static Pool _P_MT_VPE[2];
929 static Pool P_MT_VPE[8];
930 static Pool P_DVP[2];
931 static Pool P_SLTU[2];
932 static Pool _POOL32A0[128];
933 static Pool ADDQ__S__PH[2];
934 static Pool MUL__S__PH[2];
935 static Pool ADDQH__R__PH[2];
936 static Pool ADDQH__R__W[2];
937 static Pool ADDU__S__QB[2];
938 static Pool ADDU__S__PH[2];
939 static Pool ADDUH__R__QB[2];
940 static Pool SHRAV__R__PH[2];
941 static Pool SHRAV__R__QB[2];
942 static Pool SUBQ__S__PH[2];
943 static Pool SUBQH__R__PH[2];
944 static Pool SUBQH__R__W[2];
945 static Pool SUBU__S__QB[2];
946 static Pool SUBU__S__PH[2];
947 static Pool SHRA__R__PH[2];
948 static Pool SUBUH__R__QB[2];
949 static Pool SHLLV__S__PH[2];
950 static Pool SHLL__S__PH[4];
951 static Pool PRECR_SRA__R__PH_W[2];
952 static Pool _POOL32A5[128];
953 static Pool PP_LSX[16];
954 static Pool PP_LSXS[16];
955 static Pool P_LSX[2];
956 static Pool POOL32Axf_1_0[4];
957 static Pool POOL32Axf_1_1[4];
958 static Pool POOL32Axf_1_3[4];
959 static Pool POOL32Axf_1_4[2];
960 static Pool MAQ_S_A__W_PHR[2];
961 static Pool MAQ_S_A__W_PHL[2];
962 static Pool POOL32Axf_1_5[2];
963 static Pool POOL32Axf_1_7[4];
964 static Pool POOL32Axf_1[8];
965 static Pool POOL32Axf_2_DSP__0_7[8];
966 static Pool POOL32Axf_2_DSP__8_15[8];
967 static Pool POOL32Axf_2_DSP__16_23[8];
968 static Pool POOL32Axf_2_DSP__24_31[8];
969 static Pool POOL32Axf_2[4];
970 static Pool POOL32Axf_4[128];
971 static Pool POOL32Axf_5_group0[32];
972 static Pool POOL32Axf_5_group1[32];
973 static Pool ERETx[2];
974 static Pool POOL32Axf_5_group3[32];
975 static Pool POOL32Axf_5[4];
976 static Pool SHRA__R__QB[2];
977 static Pool POOL32Axf_7[8];
978 static Pool POOL32Axf[8];
979 static Pool _POOL32A7[8];
980 static Pool P32A[8];
981 static Pool P_GP_D[2];
982 static Pool P_GP_W[4];
983 static Pool POOL48I[32];
984 static Pool PP_SR[4];
985 static Pool P_SR_F[8];
986 static Pool P_SR[2];
987 static Pool P_SLL[5];
988 static Pool P_SHIFT[16];
989 static Pool P_ROTX[4];
990 static Pool P_INS[4];
991 static Pool P_EXT[4];
992 static Pool P_U12[16];
993 static Pool RINT_fmt[2];
994 static Pool ADD_fmt0[2];
995 static Pool SELEQZ_fmt[2];
996 static Pool CLASS_fmt[2];
997 static Pool SUB_fmt0[2];
998 static Pool SELNEZ_fmt[2];
999 static Pool MUL_fmt0[2];
1000 static Pool SEL_fmt[2];
1001 static Pool DIV_fmt0[2];
1002 static Pool ADD_fmt1[2];
1003 static Pool SUB_fmt1[2];
1004 static Pool MUL_fmt1[2];
1005 static Pool MADDF_fmt[2];
1006 static Pool DIV_fmt1[2];
1007 static Pool MSUBF_fmt[2];
1008 static Pool POOL32F_0[64];
1009 static Pool MIN_fmt[2];
1010 static Pool MAX_fmt[2];
1011 static Pool MINA_fmt[2];
1012 static Pool MAXA_fmt[2];
1013 static Pool CVT_L_fmt[2];
1014 static Pool RSQRT_fmt[2];
1015 static Pool FLOOR_L_fmt[2];
1016 static Pool CVT_W_fmt[2];
1017 static Pool SQRT_fmt[2];
1018 static Pool FLOOR_W_fmt[2];
1019 static Pool RECIP_fmt[2];
1020 static Pool CEIL_L_fmt[2];
1021 static Pool CEIL_W_fmt[2];
1022 static Pool TRUNC_L_fmt[2];
1023 static Pool TRUNC_W_fmt[2];
1024 static Pool ROUND_L_fmt[2];
1025 static Pool ROUND_W_fmt[2];
1026 static Pool POOL32Fxf_0[64];
1027 static Pool MOV_fmt[4];
1028 static Pool ABS_fmt[4];
1029 static Pool NEG_fmt[4];
1030 static Pool CVT_D_fmt[4];
1031 static Pool CVT_S_fmt[4];
1032 static Pool POOL32Fxf_1[32];
1033 static Pool POOL32Fxf[4];
1034 static Pool POOL32F_3[8];
1035 static Pool CMP_condn_S[32];
1036 static Pool CMP_condn_D[32];
1037 static Pool POOL32F_5[8];
1038 static Pool POOL32F[8];
1039 static Pool POOL32S_0[64];
1040 static Pool POOL32Sxf_4[128];
1041 static Pool POOL32Sxf[8];
1042 static Pool POOL32S_4[8];
1043 static Pool POOL32S[8];
1044 static Pool P_LUI[2];
1045 static Pool P_GP_LH[2];
1046 static Pool P_GP_SH[2];
1047 static Pool P_GP_CP1[4];
1048 static Pool P_GP_M64[4];
1049 static Pool P_GP_BH[8];
1050 static Pool P_LS_U12[16];
1051 static Pool P_PREF_S9_[2];
1052 static Pool P_LS_S0[16];
1053 static Pool ASET_ACLR[2];
1054 static Pool P_LL[4];
1055 static Pool P_SC[4];
1056 static Pool P_LLD[8];
1057 static Pool P_SCD[8];
1058 static Pool P_LS_S1[16];
1059 static Pool P_PREFE[2];
1060 static Pool P_LLE[4];
1061 static Pool P_SCE[4];
1062 static Pool P_LS_E0[16];
1063 static Pool P_LS_WM[2];
1064 static Pool P_LS_UAWM[2];
1065 static Pool P_LS_DM[2];
1066 static Pool P_LS_UADM[2];
1067 static Pool P_LS_S9[8];
1068 static Pool P_BAL[2];
1069 static Pool P_BALRSC[2];
1070 static Pool P_J[16];
1071 static Pool P_BR3A[32];
1072 static Pool P_BR1[4];
1073 static Pool P_BR2[4];
1074 static Pool P_BRI[8];
1075 static Pool P32[32];
1076 static Pool P16_SYSCALL[2];
1077 static Pool P16_RI[4];
1078 static Pool P16_MV[2];
1079 static Pool P16_SHIFT[2];
1080 static Pool POOL16C_00[4];
1081 static Pool POOL16C_0[2];
1082 static Pool P16C[2];
1083 static Pool P16_A1[2];
1084 static Pool P_ADDIU_RS5_[2];
1085 static Pool P16_A2[2];
1086 static Pool P16_ADDU[2];
1087 static Pool P16_JRC[2];
1088 static Pool P16_BR1[2];
1089 static Pool P16_BR[2];
1090 static Pool P16_SR[2];
1091 static Pool P16_4X4[4];
1092 static Pool P16_LB[4];
1093 static Pool P16_LH[4];
1094 static Pool P16[32];
1095 static Pool MAJOR[2];
1099 #endif