disas/nanomips: Remove disasm methods from class

NMD class methods with the disassembly_function type like
NMD::ABS_D, NMD::ABS_S, etc. are removed from the class. They're now
declared global static functions. Therefore, typedef of the function
pointer, disassembly_function is defined outside of the class.

Now that disassembly_function type functions are not part of the NMD
class we can't access them using the this pointer. Thus, the use of
the this pointer has been deleted.

Signed-off-by: Milica Lazarevic <milica.lazarevic@syrmia.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220912122635.74032-8-milica.lazarevic@syrmia.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Milica Lazarevic 2022-09-12 14:26:18 +02:00 committed by Philippe Mathieu-Daudé
parent 655fc22f1b
commit 8d416f6b45
2 changed files with 1275 additions and 1913 deletions

File diff suppressed because it is too large Load Diff

View File

@ -65,6 +65,8 @@ typedef struct Dis_info {
} Dis_info;
typedef bool (*conditional_function)(uint64 instruction);
typedef std::string (*disassembly_function)(uint64 instruction,
Dis_info *info);
class NMD
{
@ -75,9 +77,6 @@ public:
private:
typedef std::string(NMD:: *disassembly_function)(uint64 instruction,
Dis_info *info);
struct Pool {
TABLE_ENTRY_TYPE type;
struct Pool *next_table;
@ -95,643 +94,6 @@ private:
TABLE_ENTRY_TYPE & type, const Pool *table, int table_size,
Dis_info *info);
std::string ABS_D(uint64 instruction, Dis_info *info);
std::string ABS_S(uint64 instruction, Dis_info *info);
std::string ABSQ_S_PH(uint64 instruction, Dis_info *info);
std::string ABSQ_S_QB(uint64 instruction, Dis_info *info);
std::string ABSQ_S_W(uint64 instruction, Dis_info *info);
std::string ACLR(uint64 instruction, Dis_info *info);
std::string ADD(uint64 instruction, Dis_info *info);
std::string ADD_D(uint64 instruction, Dis_info *info);
std::string ADD_S(uint64 instruction, Dis_info *info);
std::string ADDIU_32_(uint64 instruction, Dis_info *info);
std::string ADDIU_48_(uint64 instruction, Dis_info *info);
std::string ADDIU_GP48_(uint64 instruction, Dis_info *info);
std::string ADDIU_GP_B_(uint64 instruction, Dis_info *info);
std::string ADDIU_GP_W_(uint64 instruction, Dis_info *info);
std::string ADDIU_NEG_(uint64 instruction, Dis_info *info);
std::string ADDIU_R1_SP_(uint64 instruction, Dis_info *info);
std::string ADDIU_R2_(uint64 instruction, Dis_info *info);
std::string ADDIU_RS5_(uint64 instruction, Dis_info *info);
std::string ADDIUPC_32_(uint64 instruction, Dis_info *info);
std::string ADDIUPC_48_(uint64 instruction, Dis_info *info);
std::string ADDQ_PH(uint64 instruction, Dis_info *info);
std::string ADDQ_S_PH(uint64 instruction, Dis_info *info);
std::string ADDQ_S_W(uint64 instruction, Dis_info *info);
std::string ADDQH_PH(uint64 instruction, Dis_info *info);
std::string ADDQH_R_PH(uint64 instruction, Dis_info *info);
std::string ADDQH_R_W(uint64 instruction, Dis_info *info);
std::string ADDQH_W(uint64 instruction, Dis_info *info);
std::string ADDSC(uint64 instruction, Dis_info *info);
std::string ADDU_16_(uint64 instruction, Dis_info *info);
std::string ADDU_32_(uint64 instruction, Dis_info *info);
std::string ADDU_4X4_(uint64 instruction, Dis_info *info);
std::string ADDU_PH(uint64 instruction, Dis_info *info);
std::string ADDU_QB(uint64 instruction, Dis_info *info);
std::string ADDU_S_PH(uint64 instruction, Dis_info *info);
std::string ADDU_S_QB(uint64 instruction, Dis_info *info);
std::string ADDUH_QB(uint64 instruction, Dis_info *info);
std::string ADDUH_R_QB(uint64 instruction, Dis_info *info);
std::string ADDWC(uint64 instruction, Dis_info *info);
std::string ALUIPC(uint64 instruction, Dis_info *info);
std::string AND_16_(uint64 instruction, Dis_info *info);
std::string AND_32_(uint64 instruction, Dis_info *info);
std::string ANDI_16_(uint64 instruction, Dis_info *info);
std::string ANDI_32_(uint64 instruction, Dis_info *info);
std::string APPEND(uint64 instruction, Dis_info *info);
std::string ASET(uint64 instruction, Dis_info *info);
std::string BALC_16_(uint64 instruction, Dis_info *info);
std::string BALC_32_(uint64 instruction, Dis_info *info);
std::string BALRSC(uint64 instruction, Dis_info *info);
std::string BBEQZC(uint64 instruction, Dis_info *info);
std::string BBNEZC(uint64 instruction, Dis_info *info);
std::string BC_16_(uint64 instruction, Dis_info *info);
std::string BC_32_(uint64 instruction, Dis_info *info);
std::string BC1EQZC(uint64 instruction, Dis_info *info);
std::string BC1NEZC(uint64 instruction, Dis_info *info);
std::string BC2EQZC(uint64 instruction, Dis_info *info);
std::string BC2NEZC(uint64 instruction, Dis_info *info);
std::string BEQC_16_(uint64 instruction, Dis_info *info);
std::string BEQC_32_(uint64 instruction, Dis_info *info);
std::string BEQIC(uint64 instruction, Dis_info *info);
std::string BEQZC_16_(uint64 instruction, Dis_info *info);
std::string BGEC(uint64 instruction, Dis_info *info);
std::string BGEIC(uint64 instruction, Dis_info *info);
std::string BGEIUC(uint64 instruction, Dis_info *info);
std::string BGEUC(uint64 instruction, Dis_info *info);
std::string BLTC(uint64 instruction, Dis_info *info);
std::string BLTIC(uint64 instruction, Dis_info *info);
std::string BLTIUC(uint64 instruction, Dis_info *info);
std::string BLTUC(uint64 instruction, Dis_info *info);
std::string BNEC_16_(uint64 instruction, Dis_info *info);
std::string BNEC_32_(uint64 instruction, Dis_info *info);
std::string BNEIC(uint64 instruction, Dis_info *info);
std::string BNEZC_16_(uint64 instruction, Dis_info *info);
std::string BPOSGE32C(uint64 instruction, Dis_info *info);
std::string BREAK_16_(uint64 instruction, Dis_info *info);
std::string BREAK_32_(uint64 instruction, Dis_info *info);
std::string BRSC(uint64 instruction, Dis_info *info);
std::string CACHE(uint64 instruction, Dis_info *info);
std::string CACHEE(uint64 instruction, Dis_info *info);
std::string CEIL_L_D(uint64 instruction, Dis_info *info);
std::string CEIL_L_S(uint64 instruction, Dis_info *info);
std::string CEIL_W_D(uint64 instruction, Dis_info *info);
std::string CEIL_W_S(uint64 instruction, Dis_info *info);
std::string CFC1(uint64 instruction, Dis_info *info);
std::string CFC2(uint64 instruction, Dis_info *info);
std::string CLASS_D(uint64 instruction, Dis_info *info);
std::string CLASS_S(uint64 instruction, Dis_info *info);
std::string CLO(uint64 instruction, Dis_info *info);
std::string CLZ(uint64 instruction, Dis_info *info);
std::string CMP_AF_D(uint64 instruction, Dis_info *info);
std::string CMP_AF_S(uint64 instruction, Dis_info *info);
std::string CMP_EQ_D(uint64 instruction, Dis_info *info);
std::string CMP_EQ_PH(uint64 instruction, Dis_info *info);
std::string CMP_EQ_S(uint64 instruction, Dis_info *info);
std::string CMP_LE_D(uint64 instruction, Dis_info *info);
std::string CMP_LE_PH(uint64 instruction, Dis_info *info);
std::string CMP_LE_S(uint64 instruction, Dis_info *info);
std::string CMP_LT_D(uint64 instruction, Dis_info *info);
std::string CMP_LT_PH(uint64 instruction, Dis_info *info);
std::string CMP_LT_S(uint64 instruction, Dis_info *info);
std::string CMP_NE_D(uint64 instruction, Dis_info *info);
std::string CMP_NE_S(uint64 instruction, Dis_info *info);
std::string CMP_OR_D(uint64 instruction, Dis_info *info);
std::string CMP_OR_S(uint64 instruction, Dis_info *info);
std::string CMP_SAF_D(uint64 instruction, Dis_info *info);
std::string CMP_SAF_S(uint64 instruction, Dis_info *info);
std::string CMP_SEQ_D(uint64 instruction, Dis_info *info);
std::string CMP_SEQ_S(uint64 instruction, Dis_info *info);
std::string CMP_SLE_D(uint64 instruction, Dis_info *info);
std::string CMP_SLE_S(uint64 instruction, Dis_info *info);
std::string CMP_SLT_D(uint64 instruction, Dis_info *info);
std::string CMP_SLT_S(uint64 instruction, Dis_info *info);
std::string CMP_SNE_D(uint64 instruction, Dis_info *info);
std::string CMP_SNE_S(uint64 instruction, Dis_info *info);
std::string CMP_SOR_D(uint64 instruction, Dis_info *info);
std::string CMP_SOR_S(uint64 instruction, Dis_info *info);
std::string CMP_SUEQ_D(uint64 instruction, Dis_info *info);
std::string CMP_SUEQ_S(uint64 instruction, Dis_info *info);
std::string CMP_SULE_D(uint64 instruction, Dis_info *info);
std::string CMP_SULE_S(uint64 instruction, Dis_info *info);
std::string CMP_SULT_D(uint64 instruction, Dis_info *info);
std::string CMP_SULT_S(uint64 instruction, Dis_info *info);
std::string CMP_SUN_D(uint64 instruction, Dis_info *info);
std::string CMP_SUN_S(uint64 instruction, Dis_info *info);
std::string CMP_SUNE_D(uint64 instruction, Dis_info *info);
std::string CMP_SUNE_S(uint64 instruction, Dis_info *info);
std::string CMP_UEQ_D(uint64 instruction, Dis_info *info);
std::string CMP_UEQ_S(uint64 instruction, Dis_info *info);
std::string CMP_ULE_D(uint64 instruction, Dis_info *info);
std::string CMP_ULE_S(uint64 instruction, Dis_info *info);
std::string CMP_ULT_D(uint64 instruction, Dis_info *info);
std::string CMP_ULT_S(uint64 instruction, Dis_info *info);
std::string CMP_UN_D(uint64 instruction, Dis_info *info);
std::string CMP_UN_S(uint64 instruction, Dis_info *info);
std::string CMP_UNE_D(uint64 instruction, Dis_info *info);
std::string CMP_UNE_S(uint64 instruction, Dis_info *info);
std::string CMPGDU_EQ_QB(uint64 instruction, Dis_info *info);
std::string CMPGDU_LE_QB(uint64 instruction, Dis_info *info);
std::string CMPGDU_LT_QB(uint64 instruction, Dis_info *info);
std::string CMPGU_EQ_QB(uint64 instruction, Dis_info *info);
std::string CMPGU_LE_QB(uint64 instruction, Dis_info *info);
std::string CMPGU_LT_QB(uint64 instruction, Dis_info *info);
std::string CMPU_EQ_QB(uint64 instruction, Dis_info *info);
std::string CMPU_LE_QB(uint64 instruction, Dis_info *info);
std::string CMPU_LT_QB(uint64 instruction, Dis_info *info);
std::string COP2_1(uint64 instruction, Dis_info *info);
std::string CTC1(uint64 instruction, Dis_info *info);
std::string CTC2(uint64 instruction, Dis_info *info);
std::string CVT_D_L(uint64 instruction, Dis_info *info);
std::string CVT_D_S(uint64 instruction, Dis_info *info);
std::string CVT_D_W(uint64 instruction, Dis_info *info);
std::string CVT_L_D(uint64 instruction, Dis_info *info);
std::string CVT_L_S(uint64 instruction, Dis_info *info);
std::string CVT_S_D(uint64 instruction, Dis_info *info);
std::string CVT_S_L(uint64 instruction, Dis_info *info);
std::string CVT_S_PL(uint64 instruction, Dis_info *info);
std::string CVT_S_PU(uint64 instruction, Dis_info *info);
std::string CVT_S_W(uint64 instruction, Dis_info *info);
std::string CVT_W_D(uint64 instruction, Dis_info *info);
std::string CVT_W_S(uint64 instruction, Dis_info *info);
std::string DADDIU_48_(uint64 instruction, Dis_info *info);
std::string DADDIU_NEG_(uint64 instruction, Dis_info *info);
std::string DADDIU_U12_(uint64 instruction, Dis_info *info);
std::string DADD(uint64 instruction, Dis_info *info);
std::string DADDU(uint64 instruction, Dis_info *info);
std::string DCLO(uint64 instruction, Dis_info *info);
std::string DCLZ(uint64 instruction, Dis_info *info);
std::string DDIV(uint64 instruction, Dis_info *info);
std::string DDIVU(uint64 instruction, Dis_info *info);
std::string DERET(uint64 instruction, Dis_info *info);
std::string DEXTM(uint64 instruction, Dis_info *info);
std::string DEXT(uint64 instruction, Dis_info *info);
std::string DEXTU(uint64 instruction, Dis_info *info);
std::string DINSM(uint64 instruction, Dis_info *info);
std::string DINS(uint64 instruction, Dis_info *info);
std::string DINSU(uint64 instruction, Dis_info *info);
std::string DI(uint64 instruction, Dis_info *info);
std::string DIV(uint64 instruction, Dis_info *info);
std::string DIV_D(uint64 instruction, Dis_info *info);
std::string DIV_S(uint64 instruction, Dis_info *info);
std::string DIVU(uint64 instruction, Dis_info *info);
std::string DLSA(uint64 instruction, Dis_info *info);
std::string DLUI_48_(uint64 instruction, Dis_info *info);
std::string DMFC0(uint64 instruction, Dis_info *info);
std::string DMFC1(uint64 instruction, Dis_info *info);
std::string DMFC2(uint64 instruction, Dis_info *info);
std::string DMFGC0(uint64 instruction, Dis_info *info);
std::string DMOD(uint64 instruction, Dis_info *info);
std::string DMODU(uint64 instruction, Dis_info *info);
std::string DMTC0(uint64 instruction, Dis_info *info);
std::string DMTC1(uint64 instruction, Dis_info *info);
std::string DMTC2(uint64 instruction, Dis_info *info);
std::string DMTGC0(uint64 instruction, Dis_info *info);
std::string DMT(uint64 instruction, Dis_info *info);
std::string DMUH(uint64 instruction, Dis_info *info);
std::string DMUHU(uint64 instruction, Dis_info *info);
std::string DMUL(uint64 instruction, Dis_info *info);
std::string DMULU(uint64 instruction, Dis_info *info);
std::string DPAQ_S_W_PH(uint64 instruction, Dis_info *info);
std::string DPAQ_SA_L_W(uint64 instruction, Dis_info *info);
std::string DPAQX_S_W_PH(uint64 instruction, Dis_info *info);
std::string DPAQX_SA_W_PH(uint64 instruction, Dis_info *info);
std::string DPAU_H_QBL(uint64 instruction, Dis_info *info);
std::string DPAU_H_QBR(uint64 instruction, Dis_info *info);
std::string DPA_W_PH(uint64 instruction, Dis_info *info);
std::string DPAX_W_PH(uint64 instruction, Dis_info *info);
std::string DPS_W_PH(uint64 instruction, Dis_info *info);
std::string DPSQ_SA_L_W(uint64 instruction, Dis_info *info);
std::string DPSQ_S_W_PH(uint64 instruction, Dis_info *info);
std::string DPSQX_SA_W_PH(uint64 instruction, Dis_info *info);
std::string DPSQX_S_W_PH(uint64 instruction, Dis_info *info);
std::string DPSU_H_QBL(uint64 instruction, Dis_info *info);
std::string DPSU_H_QBR(uint64 instruction, Dis_info *info);
std::string DPSX_W_PH(uint64 instruction, Dis_info *info);
std::string DROTR(uint64 instruction, Dis_info *info);
std::string DROTR32(uint64 instruction, Dis_info *info);
std::string DROTRV(uint64 instruction, Dis_info *info);
std::string DROTX(uint64 instruction, Dis_info *info);
std::string DSLL(uint64 instruction, Dis_info *info);
std::string DSLL32(uint64 instruction, Dis_info *info);
std::string DSLLV(uint64 instruction, Dis_info *info);
std::string DSRA(uint64 instruction, Dis_info *info);
std::string DSRA32(uint64 instruction, Dis_info *info);
std::string DSRAV(uint64 instruction, Dis_info *info);
std::string DSRL32(uint64 instruction, Dis_info *info);
std::string DSRL(uint64 instruction, Dis_info *info);
std::string DSRLV(uint64 instruction, Dis_info *info);
std::string DSUB(uint64 instruction, Dis_info *info);
std::string DSUBU(uint64 instruction, Dis_info *info);
std::string DVP(uint64 instruction, Dis_info *info);
std::string DVPE(uint64 instruction, Dis_info *info);
std::string EHB(uint64 instruction, Dis_info *info);
std::string EI(uint64 instruction, Dis_info *info);
std::string EMT(uint64 instruction, Dis_info *info);
std::string ERET(uint64 instruction, Dis_info *info);
std::string ERETNC(uint64 instruction, Dis_info *info);
std::string EVP(uint64 instruction, Dis_info *info);
std::string EVPE(uint64 instruction, Dis_info *info);
std::string EXT(uint64 instruction, Dis_info *info);
std::string EXTD(uint64 instruction, Dis_info *info);
std::string EXTD32(uint64 instruction, Dis_info *info);
std::string EXTP(uint64 instruction, Dis_info *info);
std::string EXTPDP(uint64 instruction, Dis_info *info);
std::string EXTPDPV(uint64 instruction, Dis_info *info);
std::string EXTPV(uint64 instruction, Dis_info *info);
std::string EXTR_RS_W(uint64 instruction, Dis_info *info);
std::string EXTR_R_W(uint64 instruction, Dis_info *info);
std::string EXTR_S_H(uint64 instruction, Dis_info *info);
std::string EXTR_W(uint64 instruction, Dis_info *info);
std::string EXTRV_R_W(uint64 instruction, Dis_info *info);
std::string EXTRV_RS_W(uint64 instruction, Dis_info *info);
std::string EXTRV_S_H(uint64 instruction, Dis_info *info);
std::string EXTRV_W(uint64 instruction, Dis_info *info);
std::string EXTW(uint64 instruction, Dis_info *info);
std::string FLOOR_L_D(uint64 instruction, Dis_info *info);
std::string FLOOR_L_S(uint64 instruction, Dis_info *info);
std::string FLOOR_W_D(uint64 instruction, Dis_info *info);
std::string FLOOR_W_S(uint64 instruction, Dis_info *info);
std::string FORK(uint64 instruction, Dis_info *info);
std::string HYPCALL(uint64 instruction, Dis_info *info);
std::string HYPCALL_16_(uint64 instruction, Dis_info *info);
std::string INS(uint64 instruction, Dis_info *info);
std::string INSV(uint64 instruction, Dis_info *info);
std::string IRET(uint64 instruction, Dis_info *info);
std::string JALRC_16_(uint64 instruction, Dis_info *info);
std::string JALRC_32_(uint64 instruction, Dis_info *info);
std::string JALRC_HB(uint64 instruction, Dis_info *info);
std::string JRC(uint64 instruction, Dis_info *info);
std::string LB_16_(uint64 instruction, Dis_info *info);
std::string LB_GP_(uint64 instruction, Dis_info *info);
std::string LB_S9_(uint64 instruction, Dis_info *info);
std::string LB_U12_(uint64 instruction, Dis_info *info);
std::string LBE(uint64 instruction, Dis_info *info);
std::string LBU_16_(uint64 instruction, Dis_info *info);
std::string LBU_GP_(uint64 instruction, Dis_info *info);
std::string LBU_S9_(uint64 instruction, Dis_info *info);
std::string LBU_U12_(uint64 instruction, Dis_info *info);
std::string LBUE(uint64 instruction, Dis_info *info);
std::string LBUX(uint64 instruction, Dis_info *info);
std::string LBX(uint64 instruction, Dis_info *info);
std::string LD_GP_(uint64 instruction, Dis_info *info);
std::string LD_S9_(uint64 instruction, Dis_info *info);
std::string LD_U12_(uint64 instruction, Dis_info *info);
std::string LDC1_GP_(uint64 instruction, Dis_info *info);
std::string LDC1_S9_(uint64 instruction, Dis_info *info);
std::string LDC1_U12_(uint64 instruction, Dis_info *info);
std::string LDC1X(uint64 instruction, Dis_info *info);
std::string LDC1XS(uint64 instruction, Dis_info *info);
std::string LDC2(uint64 instruction, Dis_info *info);
std::string LDM(uint64 instruction, Dis_info *info);
std::string LDPC_48_(uint64 instruction, Dis_info *info);
std::string LDX(uint64 instruction, Dis_info *info);
std::string LDXS(uint64 instruction, Dis_info *info);
std::string LH_16_(uint64 instruction, Dis_info *info);
std::string LH_GP_(uint64 instruction, Dis_info *info);
std::string LH_S9_(uint64 instruction, Dis_info *info);
std::string LH_U12_(uint64 instruction, Dis_info *info);
std::string LHE(uint64 instruction, Dis_info *info);
std::string LHU_16_(uint64 instruction, Dis_info *info);
std::string LHU_GP_(uint64 instruction, Dis_info *info);
std::string LHU_S9_(uint64 instruction, Dis_info *info);
std::string LHU_U12_(uint64 instruction, Dis_info *info);
std::string LHUE(uint64 instruction, Dis_info *info);
std::string LHUX(uint64 instruction, Dis_info *info);
std::string LHUXS(uint64 instruction, Dis_info *info);
std::string LHX(uint64 instruction, Dis_info *info);
std::string LHXS(uint64 instruction, Dis_info *info);
std::string LI_16_(uint64 instruction, Dis_info *info);
std::string LI_48_(uint64 instruction, Dis_info *info);
std::string LL(uint64 instruction, Dis_info *info);
std::string LLD(uint64 instruction, Dis_info *info);
std::string LLDP(uint64 instruction, Dis_info *info);
std::string LLE(uint64 instruction, Dis_info *info);
std::string LLWP(uint64 instruction, Dis_info *info);
std::string LLWPE(uint64 instruction, Dis_info *info);
std::string LSA(uint64 instruction, Dis_info *info);
std::string LUI(uint64 instruction, Dis_info *info);
std::string LW_16_(uint64 instruction, Dis_info *info);
std::string LW_4X4_(uint64 instruction, Dis_info *info);
std::string LWC1_GP_(uint64 instruction, Dis_info *info);
std::string LWC1_S9_(uint64 instruction, Dis_info *info);
std::string LWC1_U12_(uint64 instruction, Dis_info *info);
std::string LWC1X(uint64 instruction, Dis_info *info);
std::string LWC1XS(uint64 instruction, Dis_info *info);
std::string LWC2(uint64 instruction, Dis_info *info);
std::string LWE(uint64 instruction, Dis_info *info);
std::string LW_GP_(uint64 instruction, Dis_info *info);
std::string LW_GP16_(uint64 instruction, Dis_info *info);
std::string LWM(uint64 instruction, Dis_info *info);
std::string LWPC_48_(uint64 instruction, Dis_info *info);
std::string LW_S9_(uint64 instruction, Dis_info *info);
std::string LW_SP_(uint64 instruction, Dis_info *info);
std::string LW_U12_(uint64 instruction, Dis_info *info);
std::string LWU_GP_(uint64 instruction, Dis_info *info);
std::string LWU_S9_(uint64 instruction, Dis_info *info);
std::string LWU_U12_(uint64 instruction, Dis_info *info);
std::string LWUX(uint64 instruction, Dis_info *info);
std::string LWUXS(uint64 instruction, Dis_info *info);
std::string LWX(uint64 instruction, Dis_info *info);
std::string LWXS_16_(uint64 instruction, Dis_info *info);
std::string LWXS_32_(uint64 instruction, Dis_info *info);
std::string MADD_DSP_(uint64 instruction, Dis_info *info);
std::string MADDF_D(uint64 instruction, Dis_info *info);
std::string MADDF_S(uint64 instruction, Dis_info *info);
std::string MADDU_DSP_(uint64 instruction, Dis_info *info);
std::string MAQ_S_W_PHL(uint64 instruction, Dis_info *info);
std::string MAQ_S_W_PHR(uint64 instruction, Dis_info *info);
std::string MAQ_SA_W_PHL(uint64 instruction, Dis_info *info);
std::string MAQ_SA_W_PHR(uint64 instruction, Dis_info *info);
std::string MAX_D(uint64 instruction, Dis_info *info);
std::string MAX_S(uint64 instruction, Dis_info *info);
std::string MAXA_D(uint64 instruction, Dis_info *info);
std::string MAXA_S(uint64 instruction, Dis_info *info);
std::string MFC0(uint64 instruction, Dis_info *info);
std::string MFC1(uint64 instruction, Dis_info *info);
std::string MFC2(uint64 instruction, Dis_info *info);
std::string MFGC0(uint64 instruction, Dis_info *info);
std::string MFHC0(uint64 instruction, Dis_info *info);
std::string MFHC1(uint64 instruction, Dis_info *info);
std::string MFHC2(uint64 instruction, Dis_info *info);
std::string MFHGC0(uint64 instruction, Dis_info *info);
std::string MFHI_DSP_(uint64 instruction, Dis_info *info);
std::string MFHTR(uint64 instruction, Dis_info *info);
std::string MFLO_DSP_(uint64 instruction, Dis_info *info);
std::string MFTR(uint64 instruction, Dis_info *info);
std::string MIN_D(uint64 instruction, Dis_info *info);
std::string MIN_S(uint64 instruction, Dis_info *info);
std::string MINA_D(uint64 instruction, Dis_info *info);
std::string MINA_S(uint64 instruction, Dis_info *info);
std::string MOD(uint64 instruction, Dis_info *info);
std::string MODSUB(uint64 instruction, Dis_info *info);
std::string MODU(uint64 instruction, Dis_info *info);
std::string MOV_D(uint64 instruction, Dis_info *info);
std::string MOV_S(uint64 instruction, Dis_info *info);
std::string MOVE_BALC(uint64 instruction, Dis_info *info);
std::string MOVEP(uint64 instruction, Dis_info *info);
std::string MOVEP_REV_(uint64 instruction, Dis_info *info);
std::string MOVE(uint64 instruction, Dis_info *info);
std::string MOVN(uint64 instruction, Dis_info *info);
std::string MOVZ(uint64 instruction, Dis_info *info);
std::string MSUB_DSP_(uint64 instruction, Dis_info *info);
std::string MSUBF_D(uint64 instruction, Dis_info *info);
std::string MSUBF_S(uint64 instruction, Dis_info *info);
std::string MSUBU_DSP_(uint64 instruction, Dis_info *info);
std::string MTC0(uint64 instruction, Dis_info *info);
std::string MTC1(uint64 instruction, Dis_info *info);
std::string MTC2(uint64 instruction, Dis_info *info);
std::string MTGC0(uint64 instruction, Dis_info *info);
std::string MTHC0(uint64 instruction, Dis_info *info);
std::string MTHC1(uint64 instruction, Dis_info *info);
std::string MTHC2(uint64 instruction, Dis_info *info);
std::string MTHGC0(uint64 instruction, Dis_info *info);
std::string MTHI_DSP_(uint64 instruction, Dis_info *info);
std::string MTHLIP(uint64 instruction, Dis_info *info);
std::string MTHTR(uint64 instruction, Dis_info *info);
std::string MTLO_DSP_(uint64 instruction, Dis_info *info);
std::string MTTR(uint64 instruction, Dis_info *info);
std::string MUH(uint64 instruction, Dis_info *info);
std::string MUHU(uint64 instruction, Dis_info *info);
std::string MUL_32_(uint64 instruction, Dis_info *info);
std::string MUL_4X4_(uint64 instruction, Dis_info *info);
std::string MUL_D(uint64 instruction, Dis_info *info);
std::string MUL_PH(uint64 instruction, Dis_info *info);
std::string MUL_S(uint64 instruction, Dis_info *info);
std::string MUL_S_PH(uint64 instruction, Dis_info *info);
std::string MULEQ_S_W_PHL(uint64 instruction, Dis_info *info);
std::string MULEQ_S_W_PHR(uint64 instruction, Dis_info *info);
std::string MULEU_S_PH_QBL(uint64 instruction, Dis_info *info);
std::string MULEU_S_PH_QBR(uint64 instruction, Dis_info *info);
std::string MULQ_RS_PH(uint64 instruction, Dis_info *info);
std::string MULQ_RS_W(uint64 instruction, Dis_info *info);
std::string MULQ_S_PH(uint64 instruction, Dis_info *info);
std::string MULQ_S_W(uint64 instruction, Dis_info *info);
std::string MULSA_W_PH(uint64 instruction, Dis_info *info);
std::string MULSAQ_S_W_PH(uint64 instruction, Dis_info *info);
std::string MULT_DSP_(uint64 instruction, Dis_info *info);
std::string MULTU_DSP_(uint64 instruction, Dis_info *info);
std::string MULU(uint64 instruction, Dis_info *info);
std::string NEG_D(uint64 instruction, Dis_info *info);
std::string NEG_S(uint64 instruction, Dis_info *info);
std::string NOP_16_(uint64 instruction, Dis_info *info);
std::string NOP_32_(uint64 instruction, Dis_info *info);
std::string NOR(uint64 instruction, Dis_info *info);
std::string NOT_16_(uint64 instruction, Dis_info *info);
std::string OR_16_(uint64 instruction, Dis_info *info);
std::string OR_32_(uint64 instruction, Dis_info *info);
std::string ORI(uint64 instruction, Dis_info *info);
std::string PACKRL_PH(uint64 instruction, Dis_info *info);
std::string PAUSE(uint64 instruction, Dis_info *info);
std::string PICK_PH(uint64 instruction, Dis_info *info);
std::string PICK_QB(uint64 instruction, Dis_info *info);
std::string PRECEQ_W_PHL(uint64 instruction, Dis_info *info);
std::string PRECEQ_W_PHR(uint64 instruction, Dis_info *info);
std::string PRECEQU_PH_QBL(uint64 instruction, Dis_info *info);
std::string PRECEQU_PH_QBLA(uint64 instruction, Dis_info *info);
std::string PRECEQU_PH_QBR(uint64 instruction, Dis_info *info);
std::string PRECEQU_PH_QBRA(uint64 instruction, Dis_info *info);
std::string PRECEU_PH_QBL(uint64 instruction, Dis_info *info);
std::string PRECEU_PH_QBLA(uint64 instruction, Dis_info *info);
std::string PRECEU_PH_QBR(uint64 instruction, Dis_info *info);
std::string PRECEU_PH_QBRA(uint64 instruction, Dis_info *info);
std::string PRECR_QB_PH(uint64 instruction, Dis_info *info);
std::string PRECR_SRA_PH_W(uint64 instruction, Dis_info *info);
std::string PRECR_SRA_R_PH_W(uint64 instruction, Dis_info *info);
std::string PRECRQ_PH_W(uint64 instruction, Dis_info *info);
std::string PRECRQ_QB_PH(uint64 instruction, Dis_info *info);
std::string PRECRQ_RS_PH_W(uint64 instruction, Dis_info *info);
std::string PRECRQU_S_QB_PH(uint64 instruction, Dis_info *info);
std::string PREF_S9_(uint64 instruction, Dis_info *info);
std::string PREF_U12_(uint64 instruction, Dis_info *info);
std::string PREFE(uint64 instruction, Dis_info *info);
std::string PREPEND(uint64 instruction, Dis_info *info);
std::string RADDU_W_QB(uint64 instruction, Dis_info *info);
std::string RDDSP(uint64 instruction, Dis_info *info);
std::string RDHWR(uint64 instruction, Dis_info *info);
std::string RDPGPR(uint64 instruction, Dis_info *info);
std::string RECIP_D(uint64 instruction, Dis_info *info);
std::string RECIP_S(uint64 instruction, Dis_info *info);
std::string REPL_PH(uint64 instruction, Dis_info *info);
std::string REPL_QB(uint64 instruction, Dis_info *info);
std::string REPLV_PH(uint64 instruction, Dis_info *info);
std::string REPLV_QB(uint64 instruction, Dis_info *info);
std::string RESTORE_32_(uint64 instruction, Dis_info *info);
std::string RESTORE_JRC_16_(uint64 instruction, Dis_info *info);
std::string RESTORE_JRC_32_(uint64 instruction, Dis_info *info);
std::string RESTOREF(uint64 instruction, Dis_info *info);
std::string RINT_D(uint64 instruction, Dis_info *info);
std::string RINT_S(uint64 instruction, Dis_info *info);
std::string ROTR(uint64 instruction, Dis_info *info);
std::string ROTRV(uint64 instruction, Dis_info *info);
std::string ROTX(uint64 instruction, Dis_info *info);
std::string ROUND_L_D(uint64 instruction, Dis_info *info);
std::string ROUND_L_S(uint64 instruction, Dis_info *info);
std::string ROUND_W_D(uint64 instruction, Dis_info *info);
std::string ROUND_W_S(uint64 instruction, Dis_info *info);
std::string RSQRT_D(uint64 instruction, Dis_info *info);
std::string RSQRT_S(uint64 instruction, Dis_info *info);
std::string SAVE_16_(uint64 instruction, Dis_info *info);
std::string SAVE_32_(uint64 instruction, Dis_info *info);
std::string SAVEF(uint64 instruction, Dis_info *info);
std::string SB_16_(uint64 instruction, Dis_info *info);
std::string SB_GP_(uint64 instruction, Dis_info *info);
std::string SB_S9_(uint64 instruction, Dis_info *info);
std::string SB_U12_(uint64 instruction, Dis_info *info);
std::string SBE(uint64 instruction, Dis_info *info);
std::string SBX(uint64 instruction, Dis_info *info);
std::string SC(uint64 instruction, Dis_info *info);
std::string SCD(uint64 instruction, Dis_info *info);
std::string SCDP(uint64 instruction, Dis_info *info);
std::string SCE(uint64 instruction, Dis_info *info);
std::string SCWP(uint64 instruction, Dis_info *info);
std::string SCWPE(uint64 instruction, Dis_info *info);
std::string SD_GP_(uint64 instruction, Dis_info *info);
std::string SD_S9_(uint64 instruction, Dis_info *info);
std::string SD_U12_(uint64 instruction, Dis_info *info);
std::string SDBBP_16_(uint64 instruction, Dis_info *info);
std::string SDBBP_32_(uint64 instruction, Dis_info *info);
std::string SDC1_GP_(uint64 instruction, Dis_info *info);
std::string SDC1_S9_(uint64 instruction, Dis_info *info);
std::string SDC1_U12_(uint64 instruction, Dis_info *info);
std::string SDC1X(uint64 instruction, Dis_info *info);
std::string SDC1XS(uint64 instruction, Dis_info *info);
std::string SDC2(uint64 instruction, Dis_info *info);
std::string SDM(uint64 instruction, Dis_info *info);
std::string SDPC_48_(uint64 instruction, Dis_info *info);
std::string SDX(uint64 instruction, Dis_info *info);
std::string SDXS(uint64 instruction, Dis_info *info);
std::string SEB(uint64 instruction, Dis_info *info);
std::string SEH(uint64 instruction, Dis_info *info);
std::string SEL_D(uint64 instruction, Dis_info *info);
std::string SEL_S(uint64 instruction, Dis_info *info);
std::string SELEQZ_D(uint64 instruction, Dis_info *info);
std::string SELEQZ_S(uint64 instruction, Dis_info *info);
std::string SELNEZ_D(uint64 instruction, Dis_info *info);
std::string SELNEZ_S(uint64 instruction, Dis_info *info);
std::string SEQI(uint64 instruction, Dis_info *info);
std::string SH_16_(uint64 instruction, Dis_info *info);
std::string SH_GP_(uint64 instruction, Dis_info *info);
std::string SH_S9_(uint64 instruction, Dis_info *info);
std::string SH_U12_(uint64 instruction, Dis_info *info);
std::string SHE(uint64 instruction, Dis_info *info);
std::string SHILO(uint64 instruction, Dis_info *info);
std::string SHILOV(uint64 instruction, Dis_info *info);
std::string SHLL_PH(uint64 instruction, Dis_info *info);
std::string SHLL_QB(uint64 instruction, Dis_info *info);
std::string SHLL_S_PH(uint64 instruction, Dis_info *info);
std::string SHLL_S_W(uint64 instruction, Dis_info *info);
std::string SHLLV_PH(uint64 instruction, Dis_info *info);
std::string SHLLV_QB(uint64 instruction, Dis_info *info);
std::string SHLLV_S_PH(uint64 instruction, Dis_info *info);
std::string SHLLV_S_W(uint64 instruction, Dis_info *info);
std::string SHRA_PH(uint64 instruction, Dis_info *info);
std::string SHRA_QB(uint64 instruction, Dis_info *info);
std::string SHRA_R_PH(uint64 instruction, Dis_info *info);
std::string SHRA_R_QB(uint64 instruction, Dis_info *info);
std::string SHRA_R_W(uint64 instruction, Dis_info *info);
std::string SHRAV_PH(uint64 instruction, Dis_info *info);
std::string SHRAV_QB(uint64 instruction, Dis_info *info);
std::string SHRAV_R_PH(uint64 instruction, Dis_info *info);
std::string SHRAV_R_QB(uint64 instruction, Dis_info *info);
std::string SHRAV_R_W(uint64 instruction, Dis_info *info);
std::string SHRL_PH(uint64 instruction, Dis_info *info);
std::string SHRL_QB(uint64 instruction, Dis_info *info);
std::string SHRLV_PH(uint64 instruction, Dis_info *info);
std::string SHRLV_QB(uint64 instruction, Dis_info *info);
std::string SHX(uint64 instruction, Dis_info *info);
std::string SHXS(uint64 instruction, Dis_info *info);
std::string SIGRIE(uint64 instruction, Dis_info *info);
std::string SLL_16_(uint64 instruction, Dis_info *info);
std::string SLL_32_(uint64 instruction, Dis_info *info);
std::string SLLV(uint64 instruction, Dis_info *info);
std::string SLT(uint64 instruction, Dis_info *info);
std::string SLTI(uint64 instruction, Dis_info *info);
std::string SLTIU(uint64 instruction, Dis_info *info);
std::string SLTU(uint64 instruction, Dis_info *info);
std::string SOV(uint64 instruction, Dis_info *info);
std::string SPECIAL2(uint64 instruction, Dis_info *info);
std::string SQRT_D(uint64 instruction, Dis_info *info);
std::string SQRT_S(uint64 instruction, Dis_info *info);
std::string SRA(uint64 instruction, Dis_info *info);
std::string SRAV(uint64 instruction, Dis_info *info);
std::string SRL_16_(uint64 instruction, Dis_info *info);
std::string SRL_32_(uint64 instruction, Dis_info *info);
std::string SRLV(uint64 instruction, Dis_info *info);
std::string SUB(uint64 instruction, Dis_info *info);
std::string SUB_D(uint64 instruction, Dis_info *info);
std::string SUB_S(uint64 instruction, Dis_info *info);
std::string SUBQ_PH(uint64 instruction, Dis_info *info);
std::string SUBQ_S_PH(uint64 instruction, Dis_info *info);
std::string SUBQ_S_W(uint64 instruction, Dis_info *info);
std::string SUBQH_PH(uint64 instruction, Dis_info *info);
std::string SUBQH_R_PH(uint64 instruction, Dis_info *info);
std::string SUBQH_R_W(uint64 instruction, Dis_info *info);
std::string SUBQH_W(uint64 instruction, Dis_info *info);
std::string SUBU_16_(uint64 instruction, Dis_info *info);
std::string SUBU_32_(uint64 instruction, Dis_info *info);
std::string SUBU_PH(uint64 instruction, Dis_info *info);
std::string SUBU_QB(uint64 instruction, Dis_info *info);
std::string SUBU_S_PH(uint64 instruction, Dis_info *info);
std::string SUBU_S_QB(uint64 instruction, Dis_info *info);
std::string SUBUH_QB(uint64 instruction, Dis_info *info);
std::string SUBUH_R_QB(uint64 instruction, Dis_info *info);
std::string SW_16_(uint64 instruction, Dis_info *info);
std::string SW_4X4_(uint64 instruction, Dis_info *info);
std::string SW_GP16_(uint64 instruction, Dis_info *info);
std::string SW_GP_(uint64 instruction, Dis_info *info);
std::string SW_S9_(uint64 instruction, Dis_info *info);
std::string SW_SP_(uint64 instruction, Dis_info *info);
std::string SW_U12_(uint64 instruction, Dis_info *info);
std::string SWC1_GP_(uint64 instruction, Dis_info *info);
std::string SWC1_S9_(uint64 instruction, Dis_info *info);
std::string SWC1_U12_(uint64 instruction, Dis_info *info);
std::string SWC1X(uint64 instruction, Dis_info *info);
std::string SWC1XS(uint64 instruction, Dis_info *info);
std::string SWC2(uint64 instruction, Dis_info *info);
std::string SWE(uint64 instruction, Dis_info *info);
std::string SWM(uint64 instruction, Dis_info *info);
std::string SWPC_48_(uint64 instruction, Dis_info *info);
std::string SWX(uint64 instruction, Dis_info *info);
std::string SWXS(uint64 instruction, Dis_info *info);
std::string SYNC(uint64 instruction, Dis_info *info);
std::string SYNCI(uint64 instruction, Dis_info *info);
std::string SYNCIE(uint64 instruction, Dis_info *info);
std::string SYSCALL_16_(uint64 instruction, Dis_info *info);
std::string SYSCALL_32_(uint64 instruction, Dis_info *info);
std::string TEQ(uint64 instruction, Dis_info *info);
std::string TLBGINV(uint64 instruction, Dis_info *info);
std::string TLBGINVF(uint64 instruction, Dis_info *info);
std::string TLBGP(uint64 instruction, Dis_info *info);
std::string TLBGR(uint64 instruction, Dis_info *info);
std::string TLBGWI(uint64 instruction, Dis_info *info);
std::string TLBGWR(uint64 instruction, Dis_info *info);
std::string TLBINV(uint64 instruction, Dis_info *info);
std::string TLBINVF(uint64 instruction, Dis_info *info);
std::string TLBP(uint64 instruction, Dis_info *info);
std::string TLBR(uint64 instruction, Dis_info *info);
std::string TLBWI(uint64 instruction, Dis_info *info);
std::string TLBWR(uint64 instruction, Dis_info *info);
std::string TNE(uint64 instruction, Dis_info *info);
std::string TRUNC_L_D(uint64 instruction, Dis_info *info);
std::string TRUNC_L_S(uint64 instruction, Dis_info *info);
std::string TRUNC_W_D(uint64 instruction, Dis_info *info);
std::string TRUNC_W_S(uint64 instruction, Dis_info *info);
std::string UALDM(uint64 instruction, Dis_info *info);
std::string UALH(uint64 instruction, Dis_info *info);
std::string UALWM(uint64 instruction, Dis_info *info);
std::string UASDM(uint64 instruction, Dis_info *info);
std::string UASH(uint64 instruction, Dis_info *info);
std::string UASWM(uint64 instruction, Dis_info *info);
std::string UDI(uint64 instruction, Dis_info *info);
std::string WAIT(uint64 instruction, Dis_info *info);
std::string WRDSP(uint64 instruction, Dis_info *info);
std::string WRPGPR(uint64 instruction, Dis_info *info);
std::string XOR_16_(uint64 instruction, Dis_info *info);
std::string XOR_32_(uint64 instruction, Dis_info *info);
std::string XORI(uint64 instruction, Dis_info *info);
std::string YIELD(uint64 instruction, Dis_info *info);
static Pool P_SYSCALL[2];
static Pool P_RI[4];
static Pool P_ADDIU[2];