cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

nanomips.h (44546B)


      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
     28typedef int64_t int64;
     29typedef uint64_t uint64;
     30typedef uint32_t uint32;
     31typedef uint16_t uint16;
     32
     33namespace img
     34{
     35    typedef uint64_t address;
     36}
     37
     38
     39class NMD
     40{
     41public:
     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
     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
     82private:
     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