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