}
-int NMD::Disassemble(const uint16 * data, std::string & dis,
- TABLE_ENTRY_TYPE & type, Dis_info *info)
-{
- return Disassemble(data, dis, type, MAJOR, 2, info);
-}
-
-
/*
* Recurse through tables until the instruction is found then return
* the string and size
*
*/
-NMD::Pool NMD::P_SYSCALL[2] = {
+static const Pool P_SYSCALL[2] = {
{ instruction , 0 , 0 , 32,
0xfffc0000, 0x00080000, &SYSCALL_32_ , 0,
0x0 }, /* SYSCALL[32] */
};
-NMD::Pool NMD::P_RI[4] = {
+static const Pool P_RI[4] = {
{ instruction , 0 , 0 , 32,
0xfff80000, 0x00000000, &SIGRIE , 0,
0x0 }, /* SIGRIE */
};
-NMD::Pool NMD::P_ADDIU[2] = {
+static const Pool P_ADDIU[2] = {
{ pool , P_RI , 4 , 32,
0xffe00000, 0x00000000, 0 , 0,
0x0 }, /* P.RI */
};
-NMD::Pool NMD::P_TRAP[2] = {
+static const Pool P_TRAP[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x20000000, &TEQ , 0,
XMMS_ }, /* TEQ */
};
-NMD::Pool NMD::P_CMOVE[2] = {
+static const Pool P_CMOVE[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x20000210, &MOVZ , 0,
0x0 }, /* MOVZ */
};
-NMD::Pool NMD::P_D_MT_VPE[2] = {
+static const Pool P_D_MT_VPE[2] = {
{ instruction , 0 , 0 , 32,
0xfc1f3fff, 0x20010ab0, &DMT , 0,
MT_ }, /* DMT */
};
-NMD::Pool NMD::P_E_MT_VPE[2] = {
+static const Pool P_E_MT_VPE[2] = {
{ instruction , 0 , 0 , 32,
0xfc1f3fff, 0x20010eb0, &EMT , 0,
MT_ }, /* EMT */
};
-NMD::Pool NMD::_P_MT_VPE[2] = {
+static const Pool _P_MT_VPE[2] = {
{ pool , P_D_MT_VPE , 2 , 32,
0xfc003fff, 0x20000ab0, 0 , 0,
0x0 }, /* P.D_MT_VPE */
};
-NMD::Pool NMD::P_MT_VPE[8] = {
+static const Pool P_MT_VPE[8] = {
{ reserved_block , 0 , 0 , 32,
0xfc003bff, 0x200002b0, 0 , 0,
0x0 }, /* P.MT_VPE~*(0) */
};
-NMD::Pool NMD::P_DVP[2] = {
+static const Pool P_DVP[2] = {
{ instruction , 0 , 0 , 32,
0xfc00ffff, 0x20000390, &DVP , 0,
0x0 }, /* DVP */
};
-NMD::Pool NMD::P_SLTU[2] = {
+static const Pool P_SLTU[2] = {
{ pool , P_DVP , 2 , 32,
0xfc00fbff, 0x20000390, 0 , 0,
0x0 }, /* P.DVP */
};
-NMD::Pool NMD::_POOL32A0[128] = {
+static const Pool _POOL32A0[128] = {
{ pool , P_TRAP , 2 , 32,
0xfc0003ff, 0x20000000, 0 , 0,
0x0 }, /* P.TRAP */
};
-NMD::Pool NMD::ADDQ__S__PH[2] = {
+static const Pool ADDQ__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000000d, &ADDQ_PH , 0,
DSP_ }, /* ADDQ.PH */
};
-NMD::Pool NMD::MUL__S__PH[2] = {
+static const Pool MUL__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000002d, &MUL_PH , 0,
DSP_ }, /* MUL.PH */
};
-NMD::Pool NMD::ADDQH__R__PH[2] = {
+static const Pool ADDQH__R__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000004d, &ADDQH_PH , 0,
DSP_ }, /* ADDQH.PH */
};
-NMD::Pool NMD::ADDQH__R__W[2] = {
+static const Pool ADDQH__R__W[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000008d, &ADDQH_W , 0,
DSP_ }, /* ADDQH.W */
};
-NMD::Pool NMD::ADDU__S__QB[2] = {
+static const Pool ADDU__S__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x200000cd, &ADDU_QB , 0,
DSP_ }, /* ADDU.QB */
};
-NMD::Pool NMD::ADDU__S__PH[2] = {
+static const Pool ADDU__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000010d, &ADDU_PH , 0,
DSP_ }, /* ADDU.PH */
};
-NMD::Pool NMD::ADDUH__R__QB[2] = {
+static const Pool ADDUH__R__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000014d, &ADDUH_QB , 0,
DSP_ }, /* ADDUH.QB */
};
-NMD::Pool NMD::SHRAV__R__PH[2] = {
+static const Pool SHRAV__R__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000018d, &SHRAV_PH , 0,
DSP_ }, /* SHRAV.PH */
};
-NMD::Pool NMD::SHRAV__R__QB[2] = {
+static const Pool SHRAV__R__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x200001cd, &SHRAV_QB , 0,
DSP_ }, /* SHRAV.QB */
};
-NMD::Pool NMD::SUBQ__S__PH[2] = {
+static const Pool SUBQ__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000020d, &SUBQ_PH , 0,
DSP_ }, /* SUBQ.PH */
};
-NMD::Pool NMD::SUBQH__R__PH[2] = {
+static const Pool SUBQH__R__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000024d, &SUBQH_PH , 0,
DSP_ }, /* SUBQH.PH */
};
-NMD::Pool NMD::SUBQH__R__W[2] = {
+static const Pool SUBQH__R__W[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000028d, &SUBQH_W , 0,
DSP_ }, /* SUBQH.W */
};
-NMD::Pool NMD::SUBU__S__QB[2] = {
+static const Pool SUBU__S__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x200002cd, &SUBU_QB , 0,
DSP_ }, /* SUBU.QB */
};
-NMD::Pool NMD::SUBU__S__PH[2] = {
+static const Pool SUBU__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000030d, &SUBU_PH , 0,
DSP_ }, /* SUBU.PH */
};
-NMD::Pool NMD::SHRA__R__PH[2] = {
+static const Pool SHRA__R__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x20000335, &SHRA_PH , 0,
DSP_ }, /* SHRA.PH */
};
-NMD::Pool NMD::SUBUH__R__QB[2] = {
+static const Pool SUBUH__R__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000034d, &SUBUH_QB , 0,
DSP_ }, /* SUBUH.QB */
};
-NMD::Pool NMD::SHLLV__S__PH[2] = {
+static const Pool SHLLV__S__PH[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x2000038d, &SHLLV_PH , 0,
DSP_ }, /* SHLLV.PH */
};
-NMD::Pool NMD::SHLL__S__PH[4] = {
+static const Pool SHLL__S__PH[4] = {
{ instruction , 0 , 0 , 32,
0xfc000fff, 0x200003b5, &SHLL_PH , 0,
DSP_ }, /* SHLL.PH */
};
-NMD::Pool NMD::PRECR_SRA__R__PH_W[2] = {
+static const Pool PRECR_SRA__R__PH_W[2] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x200003cd, &PRECR_SRA_PH_W , 0,
DSP_ }, /* PRECR_SRA.PH.W */
};
-NMD::Pool NMD::_POOL32A5[128] = {
+static const Pool _POOL32A5[128] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0x20000005, &CMP_EQ_PH , 0,
DSP_ }, /* CMP.EQ.PH */
};
-NMD::Pool NMD::PP_LSX[16] = {
+static const Pool PP_LSX[16] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0x20000007, &LBX , 0,
0x0 }, /* LBX */
};
-NMD::Pool NMD::PP_LSXS[16] = {
+static const Pool PP_LSXS[16] = {
{ reserved_block , 0 , 0 , 32,
0xfc0007ff, 0x20000047, 0 , 0,
0x0 }, /* PP.LSXS~*(0) */
};
-NMD::Pool NMD::P_LSX[2] = {
+static const Pool P_LSX[2] = {
{ pool , PP_LSX , 16 , 32,
0xfc00007f, 0x20000007, 0 , 0,
0x0 }, /* PP.LSX */
};
-NMD::Pool NMD::POOL32Axf_1_0[4] = {
+static const Pool POOL32Axf_1_0[4] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x2000007f, &MFHI_DSP_ , 0,
DSP_ }, /* MFHI[DSP] */
};
-NMD::Pool NMD::POOL32Axf_1_1[4] = {
+static const Pool POOL32Axf_1_1[4] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x2000027f, &MTHLIP , 0,
DSP_ }, /* MTHLIP */
};
-NMD::Pool NMD::POOL32Axf_1_3[4] = {
+static const Pool POOL32Axf_1_3[4] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x2000067f, &RDDSP , 0,
DSP_ }, /* RDDSP */
};
-NMD::Pool NMD::POOL32Axf_1_4[2] = {
+static const Pool POOL32Axf_1_4[2] = {
{ instruction , 0 , 0 , 32,
0xfc001fff, 0x2000087f, &SHLL_QB , 0,
DSP_ }, /* SHLL.QB */
};
-NMD::Pool NMD::MAQ_S_A__W_PHR[2] = {
+static const Pool MAQ_S_A__W_PHR[2] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x20000a7f, &MAQ_S_W_PHR , 0,
DSP_ }, /* MAQ_S.W.PHR */
};
-NMD::Pool NMD::MAQ_S_A__W_PHL[2] = {
+static const Pool MAQ_S_A__W_PHL[2] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x20001a7f, &MAQ_S_W_PHL , 0,
DSP_ }, /* MAQ_S.W.PHL */
};
-NMD::Pool NMD::POOL32Axf_1_5[2] = {
+static const Pool POOL32Axf_1_5[2] = {
{ pool , MAQ_S_A__W_PHR , 2 , 32,
0xfc001fff, 0x20000a7f, 0 , 0,
0x0 }, /* MAQ_S[A].W.PHR */
};
-NMD::Pool NMD::POOL32Axf_1_7[4] = {
+static const Pool POOL32Axf_1_7[4] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x20000e7f, &EXTR_W , 0,
DSP_ }, /* EXTR.W */
};
-NMD::Pool NMD::POOL32Axf_1[8] = {
+static const Pool POOL32Axf_1[8] = {
{ pool , POOL32Axf_1_0 , 4 , 32,
0xfc000fff, 0x2000007f, 0 , 0,
0x0 }, /* POOL32Axf_1_0 */
};
-NMD::Pool NMD::POOL32Axf_2_DSP__0_7[8] = {
+static const Pool POOL32Axf_2_DSP__0_7[8] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x200000bf, &DPA_W_PH , 0,
DSP_ }, /* DPA.W.PH */
};
-NMD::Pool NMD::POOL32Axf_2_DSP__8_15[8] = {
+static const Pool POOL32Axf_2_DSP__8_15[8] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x200010bf, &DPAX_W_PH , 0,
DSP_ }, /* DPAX.W.PH */
};
-NMD::Pool NMD::POOL32Axf_2_DSP__16_23[8] = {
+static const Pool POOL32Axf_2_DSP__16_23[8] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x200020bf, &DPAU_H_QBL , 0,
DSP_ }, /* DPAU.H.QBL */
};
-NMD::Pool NMD::POOL32Axf_2_DSP__24_31[8] = {
+static const Pool POOL32Axf_2_DSP__24_31[8] = {
{ instruction , 0 , 0 , 32,
0xfc003fff, 0x200030bf, &DPAU_H_QBR , 0,
DSP_ }, /* DPAU.H.QBR */
};
-NMD::Pool NMD::POOL32Axf_2[4] = {
+static const Pool POOL32Axf_2[4] = {
{ pool , POOL32Axf_2_DSP__0_7, 8 , 32,
0xfc0031ff, 0x200000bf, 0 , 0,
0x0 }, /* POOL32Axf_2(DSP)_0_7 */
};
-NMD::Pool NMD::POOL32Axf_4[128] = {
+static const Pool POOL32Axf_4[128] = {
{ instruction , 0 , 0 , 32,
0xfc00ffff, 0x2000013f, &ABSQ_S_QB , 0,
DSP_ }, /* ABSQ_S.QB */
};
-NMD::Pool NMD::POOL32Axf_5_group0[32] = {
+static const Pool POOL32Axf_5_group0[32] = {
{ instruction , 0 , 0 , 32,
0xfc00ffff, 0x2000017f, &TLBGP , 0,
CP0_ | VZ_ | TLB_ }, /* TLBGP */
};
-NMD::Pool NMD::POOL32Axf_5_group1[32] = {
+static const Pool POOL32Axf_5_group1[32] = {
{ reserved_block , 0 , 0 , 32,
0xfc00ffff, 0x2000417f, 0 , 0,
0x0 }, /* POOL32Axf_5_group1~*(0) */
};
-NMD::Pool NMD::ERETx[2] = {
+static const Pool ERETx[2] = {
{ instruction , 0 , 0 , 32,
0xfc01ffff, 0x2000f37f, &ERET , 0,
0x0 }, /* ERET */
};
-NMD::Pool NMD::POOL32Axf_5_group3[32] = {
+static const Pool POOL32Axf_5_group3[32] = {
{ reserved_block , 0 , 0 , 32,
0xfc00ffff, 0x2000c17f, 0 , 0,
0x0 }, /* POOL32Axf_5_group3~*(0) */
};
-NMD::Pool NMD::POOL32Axf_5[4] = {
+static const Pool POOL32Axf_5[4] = {
{ pool , POOL32Axf_5_group0 , 32 , 32,
0xfc00c1ff, 0x2000017f, 0 , 0,
0x0 }, /* POOL32Axf_5_group0 */
};
-NMD::Pool NMD::SHRA__R__QB[2] = {
+static const Pool SHRA__R__QB[2] = {
{ instruction , 0 , 0 , 32,
0xfc001fff, 0x200001ff, &SHRA_QB , 0,
DSP_ }, /* SHRA.QB */
};
-NMD::Pool NMD::POOL32Axf_7[8] = {
+static const Pool POOL32Axf_7[8] = {
{ pool , SHRA__R__QB , 2 , 32,
0xfc000fff, 0x200001ff, 0 , 0,
0x0 }, /* SHRA[_R].QB */
};
-NMD::Pool NMD::POOL32Axf[8] = {
+static const Pool POOL32Axf[8] = {
{ reserved_block , 0 , 0 , 32,
0xfc0001ff, 0x2000003f, 0 , 0,
0x0 }, /* POOL32Axf~*(0) */
};
-NMD::Pool NMD::_POOL32A7[8] = {
+static const Pool _POOL32A7[8] = {
{ pool , P_LSX , 2 , 32,
0xfc00003f, 0x20000007, 0 , 0,
0x0 }, /* P.LSX */
};
-NMD::Pool NMD::P32A[8] = {
+static const Pool P32A[8] = {
{ pool , _POOL32A0 , 128 , 32,
0xfc000007, 0x20000000, 0 , 0,
0x0 }, /* _POOL32A0 */
};
-NMD::Pool NMD::P_GP_D[2] = {
+static const Pool P_GP_D[2] = {
{ instruction , 0 , 0 , 32,
0xfc000007, 0x40000001, &LD_GP_ , 0,
MIPS64_ }, /* LD[GP] */
};
-NMD::Pool NMD::P_GP_W[4] = {
+static const Pool P_GP_W[4] = {
{ instruction , 0 , 0 , 32,
0xfc000003, 0x40000000, &ADDIU_GP_W_ , 0,
0x0 }, /* ADDIU[GP.W] */
};
-NMD::Pool NMD::POOL48I[32] = {
+static const Pool POOL48I[32] = {
{ instruction , 0 , 0 , 48,
0xfc1f00000000ull, 0x600000000000ull, &LI_48_ , 0,
XMMS_ }, /* LI[48] */
};
-NMD::Pool NMD::PP_SR[4] = {
+static const Pool PP_SR[4] = {
{ instruction , 0 , 0 , 32,
0xfc10f003, 0x80003000, &SAVE_32_ , 0,
0x0 }, /* SAVE[32] */
};
-NMD::Pool NMD::P_SR_F[8] = {
+static const Pool P_SR_F[8] = {
{ instruction , 0 , 0 , 32,
0xfc10f007, 0x80103000, &SAVEF , 0,
CP1_ }, /* SAVEF */
};
-NMD::Pool NMD::P_SR[2] = {
+static const Pool P_SR[2] = {
{ pool , PP_SR , 4 , 32,
0xfc10f000, 0x80003000, 0 , 0,
0x0 }, /* PP.SR */
};
-NMD::Pool NMD::P_SLL[5] = {
+static const Pool P_SLL[5] = {
{ instruction , 0 , 0 , 32,
0xffe0f1ff, 0x8000c000, &NOP_32_ , 0,
0x0 }, /* NOP[32] */
};
-NMD::Pool NMD::P_SHIFT[16] = {
+static const Pool P_SHIFT[16] = {
{ pool , P_SLL , 5 , 32,
0xfc00f1e0, 0x8000c000, 0 , 0,
0x0 }, /* P.SLL */
};
-NMD::Pool NMD::P_ROTX[4] = {
+static const Pool P_ROTX[4] = {
{ instruction , 0 , 0 , 32,
0xfc00f820, 0x8000d000, &ROTX , 0,
XMMS_ }, /* ROTX */
};
-NMD::Pool NMD::P_INS[4] = {
+static const Pool P_INS[4] = {
{ instruction , 0 , 0 , 32,
0xfc00f820, 0x8000e000, &INS , 0,
XMMS_ }, /* INS */
};
-NMD::Pool NMD::P_EXT[4] = {
+static const Pool P_EXT[4] = {
{ instruction , 0 , 0 , 32,
0xfc00f820, 0x8000f000, &EXT , 0,
XMMS_ }, /* EXT */
};
-NMD::Pool NMD::P_U12[16] = {
+static const Pool P_U12[16] = {
{ instruction , 0 , 0 , 32,
0xfc00f000, 0x80000000, &ORI , 0,
0x0 }, /* ORI */
};
-NMD::Pool NMD::RINT_fmt[2] = {
+static const Pool RINT_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000020, &RINT_S , 0,
CP1_ }, /* RINT.S */
};
-NMD::Pool NMD::ADD_fmt0[2] = {
+static const Pool ADD_fmt0[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000030, &ADD_S , 0,
CP1_ }, /* ADD.S */
};
-NMD::Pool NMD::SELEQZ_fmt[2] = {
+static const Pool SELEQZ_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000038, &SELEQZ_S , 0,
CP1_ }, /* SELEQZ.S */
};
-NMD::Pool NMD::CLASS_fmt[2] = {
+static const Pool CLASS_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000060, &CLASS_S , 0,
CP1_ }, /* CLASS.S */
};
-NMD::Pool NMD::SUB_fmt0[2] = {
+static const Pool SUB_fmt0[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000070, &SUB_S , 0,
CP1_ }, /* SUB.S */
};
-NMD::Pool NMD::SELNEZ_fmt[2] = {
+static const Pool SELNEZ_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000078, &SELNEZ_S , 0,
CP1_ }, /* SELNEZ.S */
};
-NMD::Pool NMD::MUL_fmt0[2] = {
+static const Pool MUL_fmt0[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00000b0, &MUL_S , 0,
CP1_ }, /* MUL.S */
};
-NMD::Pool NMD::SEL_fmt[2] = {
+static const Pool SEL_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00000b8, &SEL_S , 0,
CP1_ }, /* SEL.S */
};
-NMD::Pool NMD::DIV_fmt0[2] = {
+static const Pool DIV_fmt0[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00000f0, &DIV_S , 0,
CP1_ }, /* DIV.S */
};
-NMD::Pool NMD::ADD_fmt1[2] = {
+static const Pool ADD_fmt1[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000130, &ADD_D , 0,
CP1_ }, /* ADD.D */
};
-NMD::Pool NMD::SUB_fmt1[2] = {
+static const Pool SUB_fmt1[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa0000170, &SUB_D , 0,
CP1_ }, /* SUB.D */
};
-NMD::Pool NMD::MUL_fmt1[2] = {
+static const Pool MUL_fmt1[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00001b0, &MUL_D , 0,
CP1_ }, /* MUL.D */
};
-NMD::Pool NMD::MADDF_fmt[2] = {
+static const Pool MADDF_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00001b8, &MADDF_S , 0,
CP1_ }, /* MADDF.S */
};
-NMD::Pool NMD::DIV_fmt1[2] = {
+static const Pool DIV_fmt1[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00001f0, &DIV_D , 0,
CP1_ }, /* DIV.D */
};
-NMD::Pool NMD::MSUBF_fmt[2] = {
+static const Pool MSUBF_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc0003ff, 0xa00001f8, &MSUBF_S , 0,
CP1_ }, /* MSUBF.S */
};
-NMD::Pool NMD::POOL32F_0[64] = {
+static const Pool POOL32F_0[64] = {
{ reserved_block , 0 , 0 , 32,
0xfc0001ff, 0xa0000000, 0 , 0,
CP1_ }, /* POOL32F_0~*(0) */
};
-NMD::Pool NMD::MIN_fmt[2] = {
+static const Pool MIN_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc00023f, 0xa0000003, &MIN_S , 0,
CP1_ }, /* MIN.S */
};
-NMD::Pool NMD::MAX_fmt[2] = {
+static const Pool MAX_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc00023f, 0xa000000b, &MAX_S , 0,
CP1_ }, /* MAX.S */
};
-NMD::Pool NMD::MINA_fmt[2] = {
+static const Pool MINA_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc00023f, 0xa0000023, &MINA_S , 0,
CP1_ }, /* MINA.S */
};
-NMD::Pool NMD::MAXA_fmt[2] = {
+static const Pool MAXA_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc00023f, 0xa000002b, &MAXA_S , 0,
CP1_ }, /* MAXA.S */
};
-NMD::Pool NMD::CVT_L_fmt[2] = {
+static const Pool CVT_L_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000013b, &CVT_L_S , 0,
CP1_ }, /* CVT.L.S */
};
-NMD::Pool NMD::RSQRT_fmt[2] = {
+static const Pool RSQRT_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000023b, &RSQRT_S , 0,
CP1_ }, /* RSQRT.S */
};
-NMD::Pool NMD::FLOOR_L_fmt[2] = {
+static const Pool FLOOR_L_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000033b, &FLOOR_L_S , 0,
CP1_ }, /* FLOOR.L.S */
};
-NMD::Pool NMD::CVT_W_fmt[2] = {
+static const Pool CVT_W_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000093b, &CVT_W_S , 0,
CP1_ }, /* CVT.W.S */
};
-NMD::Pool NMD::SQRT_fmt[2] = {
+static const Pool SQRT_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0000a3b, &SQRT_S , 0,
CP1_ }, /* SQRT.S */
};
-NMD::Pool NMD::FLOOR_W_fmt[2] = {
+static const Pool FLOOR_W_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0000b3b, &FLOOR_W_S , 0,
CP1_ }, /* FLOOR.W.S */
};
-NMD::Pool NMD::RECIP_fmt[2] = {
+static const Pool RECIP_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000123b, &RECIP_S , 0,
CP1_ }, /* RECIP.S */
};
-NMD::Pool NMD::CEIL_L_fmt[2] = {
+static const Pool CEIL_L_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000133b, &CEIL_L_S , 0,
CP1_ }, /* CEIL.L.S */
};
-NMD::Pool NMD::CEIL_W_fmt[2] = {
+static const Pool CEIL_W_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0001b3b, &CEIL_W_S , 0,
CP1_ }, /* CEIL.W.S */
};
-NMD::Pool NMD::TRUNC_L_fmt[2] = {
+static const Pool TRUNC_L_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000233b, &TRUNC_L_S , 0,
CP1_ }, /* TRUNC.L.S */
};
-NMD::Pool NMD::TRUNC_W_fmt[2] = {
+static const Pool TRUNC_W_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0002b3b, &TRUNC_W_S , 0,
CP1_ }, /* TRUNC.W.S */
};
-NMD::Pool NMD::ROUND_L_fmt[2] = {
+static const Pool ROUND_L_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000333b, &ROUND_L_S , 0,
CP1_ }, /* ROUND.L.S */
};
-NMD::Pool NMD::ROUND_W_fmt[2] = {
+static const Pool ROUND_W_fmt[2] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0003b3b, &ROUND_W_S , 0,
CP1_ }, /* ROUND.W.S */
};
-NMD::Pool NMD::POOL32Fxf_0[64] = {
+static const Pool POOL32Fxf_0[64] = {
{ reserved_block , 0 , 0 , 32,
0xfc003fff, 0xa000003b, 0 , 0,
CP1_ }, /* POOL32Fxf_0~*(0) */
};
-NMD::Pool NMD::MOV_fmt[4] = {
+static const Pool MOV_fmt[4] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000007b, &MOV_S , 0,
CP1_ }, /* MOV.S */
};
-NMD::Pool NMD::ABS_fmt[4] = {
+static const Pool ABS_fmt[4] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000037b, &ABS_S , 0,
CP1_ }, /* ABS.S */
};
-NMD::Pool NMD::NEG_fmt[4] = {
+static const Pool NEG_fmt[4] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0000b7b, &NEG_S , 0,
CP1_ }, /* NEG.S */
};
-NMD::Pool NMD::CVT_D_fmt[4] = {
+static const Pool CVT_D_fmt[4] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa000137b, &CVT_D_S , 0,
CP1_ }, /* CVT.D.S */
};
-NMD::Pool NMD::CVT_S_fmt[4] = {
+static const Pool CVT_S_fmt[4] = {
{ instruction , 0 , 0 , 32,
0xfc007fff, 0xa0001b7b, &CVT_S_D , 0,
CP1_ }, /* CVT.S.D */
};
-NMD::Pool NMD::POOL32Fxf_1[32] = {
+static const Pool POOL32Fxf_1[32] = {
{ pool , MOV_fmt , 4 , 32,
0xfc001fff, 0xa000007b, 0 , 0,
CP1_ }, /* MOV.fmt */
};
-NMD::Pool NMD::POOL32Fxf[4] = {
+static const Pool POOL32Fxf[4] = {
{ pool , POOL32Fxf_0 , 64 , 32,
0xfc0000ff, 0xa000003b, 0 , 0,
CP1_ }, /* POOL32Fxf_0 */
};
-NMD::Pool NMD::POOL32F_3[8] = {
+static const Pool POOL32F_3[8] = {
{ pool , MIN_fmt , 2 , 32,
0xfc00003f, 0xa0000003, 0 , 0,
CP1_ }, /* MIN.fmt */
};
-NMD::Pool NMD::CMP_condn_S[32] = {
+static const Pool CMP_condn_S[32] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0xa0000005, &CMP_AF_S , 0,
CP1_ }, /* CMP.AF.S */
};
-NMD::Pool NMD::CMP_condn_D[32] = {
+static const Pool CMP_condn_D[32] = {
{ instruction , 0 , 0 , 32,
0xfc0007ff, 0xa0000015, &CMP_AF_D , 0,
CP1_ }, /* CMP.AF.D */
};
-NMD::Pool NMD::POOL32F_5[8] = {
+static const Pool POOL32F_5[8] = {
{ pool , CMP_condn_S , 32 , 32,
0xfc00003f, 0xa0000005, 0 , 0,
CP1_ }, /* CMP.condn.S */
};
-NMD::Pool NMD::POOL32F[8] = {
+static const Pool POOL32F[8] = {
{ pool , POOL32F_0 , 64 , 32,
0xfc000007, 0xa0000000, 0 , 0,
CP1_ }, /* POOL32F_0 */
};
-NMD::Pool NMD::POOL32S_0[64] = {
+static const Pool POOL32S_0[64] = {
{ reserved_block , 0 , 0 , 32,
0xfc0001ff, 0xc0000000, 0 , 0,
0x0 }, /* POOL32S_0~*(0) */
};
-NMD::Pool NMD::POOL32Sxf_4[128] = {
+static const Pool POOL32Sxf_4[128] = {
{ reserved_block , 0 , 0 , 32,
0xfc00ffff, 0xc000013c, 0 , 0,
0x0 }, /* POOL32Sxf_4~*(0) */
};
-NMD::Pool NMD::POOL32Sxf[8] = {
+static const Pool POOL32Sxf[8] = {
{ reserved_block , 0 , 0 , 32,
0xfc0001ff, 0xc000003c, 0 , 0,
0x0 }, /* POOL32Sxf~*(0) */
};
-NMD::Pool NMD::POOL32S_4[8] = {
+static const Pool POOL32S_4[8] = {
{ instruction , 0 , 0 , 32,
0xfc00003f, 0xc0000004, &EXTD , 0,
MIPS64_ }, /* EXTD */
};
-NMD::Pool NMD::POOL32S[8] = {
+static const Pool POOL32S[8] = {
{ pool , POOL32S_0 , 64 , 32,
0xfc000007, 0xc0000000, 0 , 0,
0x0 }, /* POOL32S_0 */
};
-NMD::Pool NMD::P_LUI[2] = {
+static const Pool P_LUI[2] = {
{ instruction , 0 , 0 , 32,
0xfc000002, 0xe0000000, &LUI , 0,
0x0 }, /* LUI */
};
-NMD::Pool NMD::P_GP_LH[2] = {
+static const Pool P_GP_LH[2] = {
{ instruction , 0 , 0 , 32,
0xfc1c0001, 0x44100000, &LH_GP_ , 0,
0x0 }, /* LH[GP] */
};
-NMD::Pool NMD::P_GP_SH[2] = {
+static const Pool P_GP_SH[2] = {
{ instruction , 0 , 0 , 32,
0xfc1c0001, 0x44140000, &SH_GP_ , 0,
0x0 }, /* SH[GP] */
};
-NMD::Pool NMD::P_GP_CP1[4] = {
+static const Pool P_GP_CP1[4] = {
{ instruction , 0 , 0 , 32,
0xfc1c0003, 0x44180000, &LWC1_GP_ , 0,
CP1_ }, /* LWC1[GP] */
};
-NMD::Pool NMD::P_GP_M64[4] = {
+static const Pool P_GP_M64[4] = {
{ instruction , 0 , 0 , 32,
0xfc1c0003, 0x441c0000, &LWU_GP_ , 0,
MIPS64_ }, /* LWU[GP] */
};
-NMD::Pool NMD::P_GP_BH[8] = {
+static const Pool P_GP_BH[8] = {
{ instruction , 0 , 0 , 32,
0xfc1c0000, 0x44000000, &LB_GP_ , 0,
0x0 }, /* LB[GP] */
};
-NMD::Pool NMD::P_LS_U12[16] = {
+static const Pool P_LS_U12[16] = {
{ instruction , 0 , 0 , 32,
0xfc00f000, 0x84000000, &LB_U12_ , 0,
0x0 }, /* LB[U12] */
};
-NMD::Pool NMD::P_PREF_S9_[2] = {
+static const Pool P_PREF_S9_[2] = {
{ instruction , 0 , 0 , 32,
0xffe07f00, 0xa7e01800, &SYNCI , 0,
0x0 }, /* SYNCI */
};
-NMD::Pool NMD::P_LS_S0[16] = {
+static const Pool P_LS_S0[16] = {
{ instruction , 0 , 0 , 32,
0xfc007f00, 0xa4000000, &LB_S9_ , 0,
0x0 }, /* LB[S9] */
};
-NMD::Pool NMD::ASET_ACLR[2] = {
+static const Pool ASET_ACLR[2] = {
{ instruction , 0 , 0 , 32,
0xfe007f00, 0xa4001100, &ASET , 0,
MCU_ }, /* ASET */
};
-NMD::Pool NMD::P_LL[4] = {
+static const Pool P_LL[4] = {
{ instruction , 0 , 0 , 32,
0xfc007f03, 0xa4005100, &LL , 0,
0x0 }, /* LL */
};
-NMD::Pool NMD::P_SC[4] = {
+static const Pool P_SC[4] = {
{ instruction , 0 , 0 , 32,
0xfc007f03, 0xa4005900, &SC , 0,
0x0 }, /* SC */
};
-NMD::Pool NMD::P_LLD[8] = {
+static const Pool P_LLD[8] = {
{ instruction , 0 , 0 , 32,
0xfc007f07, 0xa4007100, &LLD , 0,
MIPS64_ }, /* LLD */
};
-NMD::Pool NMD::P_SCD[8] = {
+static const Pool P_SCD[8] = {
{ instruction , 0 , 0 , 32,
0xfc007f07, 0xa4007900, &SCD , 0,
MIPS64_ }, /* SCD */
};
-NMD::Pool NMD::P_LS_S1[16] = {
+static const Pool P_LS_S1[16] = {
{ reserved_block , 0 , 0 , 32,
0xfc007f00, 0xa4000100, 0 , 0,
0x0 }, /* P.LS.S1~*(0) */
};
-NMD::Pool NMD::P_PREFE[2] = {
+static const Pool P_PREFE[2] = {
{ instruction , 0 , 0 , 32,
0xffe07f00, 0xa7e01a00, &SYNCIE , 0,
CP0_ | EVA_ }, /* SYNCIE */
};
-NMD::Pool NMD::P_LLE[4] = {
+static const Pool P_LLE[4] = {
{ instruction , 0 , 0 , 32,
0xfc007f03, 0xa4005200, &LLE , 0,
CP0_ | EVA_ }, /* LLE */
};
-NMD::Pool NMD::P_SCE[4] = {
+static const Pool P_SCE[4] = {
{ instruction , 0 , 0 , 32,
0xfc007f03, 0xa4005a00, &SCE , 0,
CP0_ | EVA_ }, /* SCE */
};
-NMD::Pool NMD::P_LS_E0[16] = {
+static const Pool P_LS_E0[16] = {
{ instruction , 0 , 0 , 32,
0xfc007f00, 0xa4000200, &LBE , 0,
CP0_ | EVA_ }, /* LBE */
};
-NMD::Pool NMD::P_LS_WM[2] = {
+static const Pool P_LS_WM[2] = {
{ instruction , 0 , 0 , 32,
0xfc000f00, 0xa4000400, &LWM , 0,
XMMS_ }, /* LWM */
};
-NMD::Pool NMD::P_LS_UAWM[2] = {
+static const Pool P_LS_UAWM[2] = {
{ instruction , 0 , 0 , 32,
0xfc000f00, 0xa4000500, &UALWM , 0,
XMMS_ }, /* UALWM */
};
-NMD::Pool NMD::P_LS_DM[2] = {
+static const Pool P_LS_DM[2] = {
{ instruction , 0 , 0 , 32,
0xfc000f00, 0xa4000600, &LDM , 0,
MIPS64_ }, /* LDM */
};
-NMD::Pool NMD::P_LS_UADM[2] = {
+static const Pool P_LS_UADM[2] = {
{ instruction , 0 , 0 , 32,
0xfc000f00, 0xa4000700, &UALDM , 0,
MIPS64_ }, /* UALDM */
};
-NMD::Pool NMD::P_LS_S9[8] = {
+static const Pool P_LS_S9[8] = {
{ pool , P_LS_S0 , 16 , 32,
0xfc000700, 0xa4000000, 0 , 0,
0x0 }, /* P.LS.S0 */
};
-NMD::Pool NMD::P_BAL[2] = {
+static const Pool P_BAL[2] = {
{ branch_instruction , 0 , 0 , 32,
0xfe000000, 0x28000000, &BC_32_ , 0,
0x0 }, /* BC[32] */
};
-NMD::Pool NMD::P_BALRSC[2] = {
+static const Pool P_BALRSC[2] = {
{ branch_instruction , 0 , 0 , 32,
0xffe0f000, 0x48008000, &BRSC , 0,
0x0 }, /* BRSC */
};
-NMD::Pool NMD::P_J[16] = {
+static const Pool P_J[16] = {
{ call_instruction , 0 , 0 , 32,
0xfc00f000, 0x48000000, &JALRC_32_ , 0,
0x0 }, /* JALRC[32] */
};
-NMD::Pool NMD::P_BR3A[32] = {
+static const Pool P_BR3A[32] = {
{ branch_instruction , 0 , 0 , 32,
0xfc1fc000, 0x88004000, &BC1EQZC , 0,
CP1_ }, /* BC1EQZC */
};
-NMD::Pool NMD::P_BR1[4] = {
+static const Pool P_BR1[4] = {
{ branch_instruction , 0 , 0 , 32,
0xfc00c000, 0x88000000, &BEQC_32_ , 0,
0x0 }, /* BEQC[32] */
};
-NMD::Pool NMD::P_BR2[4] = {
+static const Pool P_BR2[4] = {
{ branch_instruction , 0 , 0 , 32,
0xfc00c000, 0xa8000000, &BNEC_32_ , 0,
0x0 }, /* BNEC[32] */
};
-NMD::Pool NMD::P_BRI[8] = {
+static const Pool P_BRI[8] = {
{ branch_instruction , 0 , 0 , 32,
0xfc1c0000, 0xc8000000, &BEQIC , 0,
0x0 }, /* BEQIC */
};
-NMD::Pool NMD::P32[32] = {
+static const Pool P32[32] = {
{ pool , P_ADDIU , 2 , 32,
0xfc000000, 0x00000000, 0 , 0,
0x0 }, /* P.ADDIU */
};
-NMD::Pool NMD::P16_SYSCALL[2] = {
+static const Pool P16_SYSCALL[2] = {
{ instruction , 0 , 0 , 16,
0xfffc , 0x1008 , &SYSCALL_16_ , 0,
0x0 }, /* SYSCALL[16] */
};
-NMD::Pool NMD::P16_RI[4] = {
+static const Pool P16_RI[4] = {
{ reserved_block , 0 , 0 , 16,
0xfff8 , 0x1000 , 0 , 0,
0x0 }, /* P16.RI~*(0) */
};
-NMD::Pool NMD::P16_MV[2] = {
+static const Pool P16_MV[2] = {
{ pool , P16_RI , 4 , 16,
0xffe0 , 0x1000 , 0 , 0,
0x0 }, /* P16.RI */
};
-NMD::Pool NMD::P16_SHIFT[2] = {
+static const Pool P16_SHIFT[2] = {
{ instruction , 0 , 0 , 16,
0xfc08 , 0x3000 , &SLL_16_ , 0,
0x0 }, /* SLL[16] */
};
-NMD::Pool NMD::POOL16C_00[4] = {
+static const Pool POOL16C_00[4] = {
{ instruction , 0 , 0 , 16,
0xfc0f , 0x5000 , &NOT_16_ , 0,
0x0 }, /* NOT[16] */
};
-NMD::Pool NMD::POOL16C_0[2] = {
+static const Pool POOL16C_0[2] = {
{ pool , POOL16C_00 , 4 , 16,
0xfc03 , 0x5000 , 0 , 0,
0x0 }, /* POOL16C_00 */
};
-NMD::Pool NMD::P16C[2] = {
+static const Pool P16C[2] = {
{ pool , POOL16C_0 , 2 , 16,
0xfc01 , 0x5000 , 0 , 0,
0x0 }, /* POOL16C_0 */
};
-NMD::Pool NMD::P16_A1[2] = {
+static const Pool P16_A1[2] = {
{ reserved_block , 0 , 0 , 16,
0xfc40 , 0x7000 , 0 , 0,
0x0 }, /* P16.A1~*(0) */
};
-NMD::Pool NMD::P_ADDIU_RS5_[2] = {
+static const Pool P_ADDIU_RS5_[2] = {
{ instruction , 0 , 0 , 16,
0xffe8 , 0x9008 , &NOP_16_ , 0,
0x0 }, /* NOP[16] */
};
-NMD::Pool NMD::P16_A2[2] = {
+static const Pool P16_A2[2] = {
{ instruction , 0 , 0 , 16,
0xfc08 , 0x9000 , &ADDIU_R2_ , 0,
0x0 }, /* ADDIU[R2] */
};
-NMD::Pool NMD::P16_ADDU[2] = {
+static const Pool P16_ADDU[2] = {
{ instruction , 0 , 0 , 16,
0xfc01 , 0xb000 , &ADDU_16_ , 0,
0x0 }, /* ADDU[16] */
};
-NMD::Pool NMD::P16_JRC[2] = {
+static const Pool P16_JRC[2] = {
{ branch_instruction , 0 , 0 , 16,
0xfc1f , 0xd800 , &JRC , 0,
0x0 }, /* JRC */
};
-NMD::Pool NMD::P16_BR1[2] = {
+static const Pool P16_BR1[2] = {
{ branch_instruction , 0 , 0 , 16,
0xfc00 , 0xd800 , &BEQC_16_ , &BEQC_16__cond ,
XMMS_ }, /* BEQC[16] */
};
-NMD::Pool NMD::P16_BR[2] = {
+static const Pool P16_BR[2] = {
{ pool , P16_JRC , 2 , 16,
0xfc0f , 0xd800 , 0 , 0,
0x0 }, /* P16.JRC */
};
-NMD::Pool NMD::P16_SR[2] = {
+static const Pool P16_SR[2] = {
{ instruction , 0 , 0 , 16,
0xfd00 , 0x1c00 , &SAVE_16_ , 0,
0x0 }, /* SAVE[16] */
};
-NMD::Pool NMD::P16_4X4[4] = {
+static const Pool P16_4X4[4] = {
{ instruction , 0 , 0 , 16,
0xfd08 , 0x3c00 , &ADDU_4X4_ , 0,
XMMS_ }, /* ADDU[4X4] */
};
-NMD::Pool NMD::P16_LB[4] = {
+static const Pool P16_LB[4] = {
{ instruction , 0 , 0 , 16,
0xfc0c , 0x5c00 , &LB_16_ , 0,
0x0 }, /* LB[16] */
};
-NMD::Pool NMD::P16_LH[4] = {
+static const Pool P16_LH[4] = {
{ instruction , 0 , 0 , 16,
0xfc09 , 0x7c00 , &LH_16_ , 0,
0x0 }, /* LH[16] */
};
-NMD::Pool NMD::P16[32] = {
+static const Pool P16[32] = {
{ pool , P16_MV , 2 , 16,
0xfc00 , 0x1000 , 0 , 0,
0x0 }, /* P16.MV */
};
-NMD::Pool NMD::MAJOR[2] = {
+static const Pool MAJOR[2] = {
{ pool , P32 , 32 , 32,
0x10000000, 0x00000000, 0 , 0,
0x0 }, /* P32 */
0x1000 , 0x1000 , 0 , 0,
0x0 }, /* P16 */
};
+
+int NMD::Disassemble(const uint16 *data, std::string & dis,
+ TABLE_ENTRY_TYPE & type, Dis_info *info)
+{
+ return Disassemble(data, dis, type, MAJOR, 2, info);
+}