iType itypeA = { 1, 0x001F, dcdFormA, 0};
iType itypeB = { 0, 0x0000, dcdFormB, 0};
iType itypeD = { 0, 0x0000, dcdFormD, 0};
iType itypeDS = { 0, 0x0003, dcdFormDS, 0};
iType itypeI = { 0, 0x0000, dcdFormI, 0};
iType itypeM = { 0, 0x0000, dcdFormM, 0};
iType itypeMD = { 2, 0x0007, dcdFormMD, 0};
iType itypeMDS = { 1, 0x000F, dcdFormMDS, 0};
iType itypeSC = { 0, 0x0000, dcdFormSC, 0};
iType itypeVA = { 0, 0x003F, dcdFormVA, 0};
iType itypeVX = { 0, 0x07FF, dcdFormVX, 0};
iType itypeVXR = { 0, 0x03FF, dcdFormVXR, 0};
iType itypeX = { 1, 0x03FF, dcdFormX, 0};
iType itypeXFL = { 1, 0x03FF, dcdFormXFL, 0};
iType itypeXFX = { 1, 0x03FF, dcdFormXFX, 0};
iType itypeXL = { 1, 0x03FF, dcdFormXL, 0};
iType itypeXO = { 1, 0x01FF, dcdFormXO, 0};
iType itypeXS = { 2, 0x01FF, dcdFormXS, 0};
ppcinst ppcm00[] = {
{ 0, 256, &itypeX, xattn, "attn", modVtab | modUnimpl, isScalar, 4, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm02[] = {
{ 2, 0, &itypeD, xtdi, "tdi", modFDtoa | modUnimpl, isTrap, 8, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm03[] = {
{ 3, 0, &itypeD, xtwi, "twi", modVta | modUnimpl, isTrap, 4, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm04[] = {
{ 4, 0, &itypeVX, 0, "vaddubm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 2, &itypeVX, 0, "vmaxub", modVtab | mod3op | modUnimpl, isVec, 4, rfVpr},
{ 4, 4, &itypeVX, 0, "vrlb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 6, &itypeVXR, 0, "vcmpequb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 8, &itypeVX, 0, "vmuloub", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 10, &itypeVX, 0, "vaddfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 12, &itypeVX, 0, "vmrghb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 14, &itypeVX, 0, "vpkuhum", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 32, &itypeVA, 0, "vmhaddshs", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 33, &itypeVA, 0, "vmhraddshs", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 34, &itypeVA, 0, "vmladduhm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 36, &itypeVA, 0, "vmsumubm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 37, &itypeVA, 0, "vmsummbm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 38, &itypeVA, 0, "vmsumuhm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 39, &itypeVA, 0, "vmsumuhs", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 40, &itypeVA, 0, "vmsumshm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 41, &itypeVA, 0, "vmsumshs", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 42, &itypeVA, 0, "vsel", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 43, &itypeVA, 0, "vperm", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 44, &itypeVA, 0, "vsldoi", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 46, &itypeVA, 0, "vmaddfp", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 47, &itypeVA, 0, "vnmsubfp", modVtabc | mod4op | modUnimpl, isVec, 16, rfVpr},
{ 4, 64, &itypeVX, 0, "vadduhm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 66, &itypeVX, 0, "vmaxuh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 68, &itypeVX, 0, "vrlh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 70, &itypeVXR, 0, "vcmpequh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 72, &itypeVX, 0, "vmulouh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 74, &itypeVX, 0, "vsubfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 76, &itypeVX, 0, "vmrghh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 78, &itypeVX, 0, "vpkuwum", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 128, &itypeVX, 0, "vadduwm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 130, &itypeVX, 0, "vmaxuw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 132, &itypeVX, 0, "vrlw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 134, &itypeVXR, 0, "vcmpequw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 140, &itypeVX, 0, "vmrghw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 142, &itypeVX, 0, "vpkuhus", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 198, &itypeVXR, 0, "vcmpeqfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 206, &itypeVX, 0, "vpkuwus", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 258, &itypeVX, 0, "vmaxsb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 260, &itypeVX, 0, "vslb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 264, &itypeVX, 0, "vmulosb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 266, &itypeVX, 0, "vrefp", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 268, &itypeVX, 0, "vmrglb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 270, &itypeVX, 0, "vpkshus", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 322, &itypeVX, 0, "vmaxsh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 324, &itypeVX, 0, "vslh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 328, &itypeVX, 0, "vmulosh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 330, &itypeVX, 0, "vrsqrtefp", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 332, &itypeVX, 0, "vmrglh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 334, &itypeVX, 0, "vpkswus", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 384, &itypeVX, 0, "vaddcuw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 386, &itypeVX, 0, "vmaxsw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 388, &itypeVX, 0, "vslw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 394, &itypeVX, 0, "vexptefp", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 396, &itypeVX, 0, "vmrglw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 398, &itypeVX, 0, "vpkshss", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 452, &itypeVX, 0, "vsl", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 454, &itypeVXR, 0, "vcmpgefp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 458, &itypeVX, 0, "vlogefp", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 462, &itypeVX, 0, "vpkswss", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 512, &itypeVX, 0, "vaddubs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 514, &itypeVX, 0, "vminub", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 516, &itypeVX, 0, "vsrb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 518, &itypeVXR, 0, "vcmpgtub", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 520, &itypeVX, 0, "vmuleub", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 522, &itypeVX, 0, "vrfin", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 524, &itypeVX, 0, "vspltb", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 526, &itypeVX, 0, "vupkhsb", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 576, &itypeVX, 0, "vadduhs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 578, &itypeVX, 0, "vminuh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 580, &itypeVX, 0, "vsrh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 582, &itypeVXR, 0, "vcmpgtuh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 584, &itypeVX, 0, "vmuleuh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 586, &itypeVX, 0, "vrfiz", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 588, &itypeVX, 0, "vsplth", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 590, &itypeVX, 0, "vupkhsh", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 640, &itypeVX, 0, "vadduws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 642, &itypeVX, 0, "vminuw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 644, &itypeVX, 0, "vsrw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 646, &itypeVXR, 0, "vcmpgtuw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 650, &itypeVX, 0, "vrfip", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 652, &itypeVX, 0, "vspltw", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 654, &itypeVX, 0, "vupklsb", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 708, &itypeVX, 0, "vsr", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 710, &itypeVXR, 0, "vcmpgtfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 714, &itypeVX, 0, "vrfim", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 718, &itypeVX, 0, "vupklsh", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 768, &itypeVX, 0, "vaddsbs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 770, &itypeVX, 0, "vminsb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 772, &itypeVX, 0, "vsrab", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 774, &itypeVXR, 0, "vcmpgtsb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 776, &itypeVX, 0, "vmulesb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 778, &itypeVX, 0, "vcfux", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 780, &itypeVX, 0, "vspltisb", modVt | modsim | modUnimpl, isVec, 16, rfVpr},
{ 4, 782, &itypeVX, 0, "vpkpx", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 832, &itypeVX, 0, "vaddshs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 834, &itypeVX, 0, "vminsh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 836, &itypeVX, 0, "vsrah", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 838, &itypeVXR, 0, "vcmpgtsh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 840, &itypeVX, 0, "vmulesh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 842, &itypeVX, 0, "vcfsx", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 844, &itypeVX, 0, "vspltish", modVt | modsim | modUnimpl, isVec, 16, rfVpr},
{ 4, 846, &itypeVX, 0, "vupkhpx", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 896, &itypeVX, 0, "vaddsws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 898, &itypeVX, 0, "vminsw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 900, &itypeVX, 0, "vsraw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 902, &itypeVXR, 0, "vcmpgtsw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 906, &itypeVX, 0, "vctuxs", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 908, &itypeVX, 0, "vspltisw", modVt | modsim | modUnimpl, isVec, 16, rfVpr},
{ 4, 966, &itypeVXR, 0, "vcmpbfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 970, &itypeVX, 0, "vctsxs", modVtb | moduim | modUnimpl, isVec, 16, rfVpr},
{ 4, 974, &itypeVX, 0, "vupklpx", modVtb | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1024, &itypeVX, 0, "vsububm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1026, &itypeVX, 0, "vavgub", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1028, &itypeVX, 0, "vand", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1034, &itypeVX, 0, "vmaxfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1036, &itypeVX, 0, "vslo", modVtab | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1088, &itypeVX, 0, "vsubuhm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1090, &itypeVX, 0, "vavguh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1092, &itypeVX, 0, "vandc", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1098, &itypeVX, 0, "vminfp", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1100, &itypeVX, 0, "vsro", modVtab | mod2op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1152, &itypeVX, 0, "vsubuwm", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1154, &itypeVX, 0, "vavguw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1156, &itypeVX, 0, "vor", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1220, &itypeVX, 0, "vxor", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1282, &itypeVX, 0, "vavgsb", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1284, &itypeVX, 0, "vnor", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1346, &itypeVX, 0, "vavgsh", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1408, &itypeVX, 0, "vsubcuw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1410, &itypeVX, 0, "vavgsw", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1536, &itypeVX, 0, "vsububs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1540, &itypeVX, 0, "mfvscr", modVt | mod1opt | modUnimpl, isVec, 16, rfVpr},
{ 4, 1544, &itypeVX, 0, "vsum4ubs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1600, &itypeVX, 0, "vsubuhs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1604, &itypeVX, 0, "mtvscr", modVb | mod1opb | modUnimpl, isVec, 16, rfVpr},
{ 4, 1608, &itypeVX, 0, "vsum4shs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1664, &itypeVX, 0, "vsubuws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1672, &itypeVX, 0, "vsum2sws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1792, &itypeVX, 0, "vsubsbs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1800, &itypeVX, 0, "vsum4sbs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1856, &itypeVX, 0, "vsubshs", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1920, &itypeVX, 0, "vsubsws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{ 4, 1928, &itypeVX, 0, "vsumsws", modVtab | mod3op | modUnimpl, isVec, 16, rfVpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm07[] = {
{ 7, 0, &itypeD, 0, "mulli", modVta | modUnimpl, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm08[] = {
{ 8, 0, &itypeD, 0, "subfic", modVta | modUnimpl, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm10[] = {
{ 10, 0, &itypeD, xcmpli, "cmpli", modVta | modUnimpl | modTnomod, isScalar, 4, dNoFmt | dImmUn},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm11[] = {
{ 11, 0, &itypeD, xcmpi, "cmpi", modVta | modUnimpl | modTnomod, isScalar, 4, dNoFmt},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm12[] = {
{ 12, 0, &itypeD, xaddic, "addic", modVta, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm13[] = {
{ 13, 0, &itypeD, xaddicdot, "addic.", modVta, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm14[] = {
{ 14, 0, &itypeD, xaddi, "addi", modVta, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm15[] = {
{ 15, 0, &itypeD, xaddis, "addis", modVta, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm16[] = {
{ 16, 0, &itypeB, xbc, "bc", modFBBOBI, isBrCond, 0, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm17[] = {
{ 17, 0, &itypeSC, xsc, "sc", modUnimpl, isSysCall, 0, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm18[] = {
{ 18, 0, &itypeI, xb, "b", 0, isBranch, 4, 0},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm19[] = {
{ 19, 0, &itypeXL, xmcrf, "mcrf", modVtab | modUnimpl, isScalar, 4, dSkip | rfSpr | (sPunimp << 8)},
{ 19, 16, &itypeXL, xbclr, "bclr", modVtab | modLR, isBrCond, 4, dSkip},
{ 19, 18, &itypeXL, xoponly, "rfid", modPrv, isRFI, 8, dSkip},
{ 19, 33, &itypeXL, 0, "crnor", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 50, &itypeXL, xoponly, "rfi", modPrv, isRFI, 4, dSkip},
{ 19, 129, &itypeXL, 0, "crandc", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 150, &itypeXL, xoponly, "isync", 0, isScalar, 0, dSkip},
{ 19, 193, &itypeXL, 0, "crxor", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 225, &itypeXL, 0, "crnand", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 257, &itypeXL, 0, "crand", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 274, &itypeXL, xoponly, "hrfid", modPrv, isRFI, 8, dSkip},
{ 19, 289, &itypeXL, 0, "creqv", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 417, &itypeXL, 0, "crorc", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 449, &itypeXL, 0, "cror", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 19, 528, &itypeXL, xbctr, "bctr", modFBBOBI | modCTR, isBranch, 4, dSkip},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm20[] = {
{ 20, 0, &itypeM, xrot, "rlwimi", modSHtabc | modROTL32 | modInsert | modDplus32, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm21[] = {
{ 21, 0, &itypeM, xrot, "rlwinm", modSHtabc | modROTL32 | modDplus32, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm23[] = {
{ 23, 0, &itypeM, xrot, "rlwnm", modSHtabc | modROTL32 | modUseRB | modDplus32, isScalar, 4, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm24[] = {
{ 24, 0, &itypeD, xlogi, "ori", modVta | modor, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm25[] = {
{ 25, 0, &itypeD, xlogi, "oris", modVta | modor | modshft, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm26[] = {
{ 26, 0, &itypeD, xlogi, "xori", modVta | modxor, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm27[] = {
{ 27, 0, &itypeD, xlogi, "xoris", modVta | modxor | modshft, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm28[] = {
{ 28, 0, &itypeD, xlogi, "andi.", modVta | modxor | modSetCRF, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm29[] = {
{ 29, 0, &itypeD, xlogi, "andis.", modVta | modxor | modshft | modSetCRF, isScalar, 4, dSwapTA | dImmUn | rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm30[] = {
{ 30, 0, &itypeMD, xrot, "rldicl", modSHtabc | mod63d, isScalar, 8, rfGpr},
{ 30, 1, &itypeMD, xrot, "rldicr", modSHtabc | modZeroc, isScalar, 8, rfGpr},
{ 30, 2, &itypeMD, xrot, "rldic", modSHtabc | mod63minusd, isScalar, 8, rfGpr},
{ 30, 3, &itypeMD, xrot, "rldimi", modSHtabc | modInsert | mod63minusd, isScalar, 8, rfGpr},
{ 30, 8, &itypeMDS, xrot, "rldcl", modSHtabc | modUseRB, isScalar, 8, rfGpr},
{ 30, 9, &itypeMDS, xrot, "rldcr", modSHtabc | modZeroc, isScalar, 8, rfGpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm31[] = {
{ 31, 0, &itypeX, xcmp, "cmp", modVtab | modUnimpl | modTnomod, isScalar, 4, dNoFmt},
{ 31, 4, &itypeX, xtrap, "tw", modVtab | modUnimpl, isTrap, 4, dNoFmt},
{ 31, 6, &itypeX, 0, "lvsl", modVtab | modUnimpl | modTVec, isVec, 16, rfVpr},
{ 31, 7, &itypeX, 0, "lvebx", modVtab | modUnimpl | modTVec, isRead, 1, rfVpr},
{ 31, 8, &itypeXO, 0, "subfc", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 9, &itypeXO, 0, "mulhdu", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 10, &itypeXO, xaddc, "addc", modVtab, isScalar, 4, rfGpr},
{ 31, 11, &itypeXO, 0, "mulhwu", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 19, &itypeXFX, xmfcr, "mfcr", modVt | modUnimpl, isScalar, 4, rfGpr}, { 31, 20, &itypeX, 0, "lwarx", modVtab | modUnimpl | modRsvn, isRead, 4, rfGpr},
{ 31, 21, &itypeX, 0, "ldx", modVtab, isRead, 8, rfGpr},
{ 31, 23, &itypeX, 0, "lwzx", modVtab , isRead, 4, rfGpr},
{ 31, 24, &itypeX, xrot, "slw", modVtab | modUseRB | modShift | modROTL32, isScalar, 4, rfGpr},
{ 31, 26, &itypeX, 0, "cntlzw", modVta | modUnimpl, isScalar, 4, rfGpr},
{ 31, 27, &itypeX, xrot, "sld", modVtab | modUseRB | modShift, isScalar, 4, rfGpr},
{ 31, 28, &itypeX, xlogx, "and", modVtab | modand, isScalar, 4, rfGpr | dSwapTA},
{ 31, 32, &itypeX, xcmpl, "cmpl", modVtab | modUnimpl | modTnomod, isScalar, 4, dNoFmt},
{ 31, 38, &itypeX, 0, "lvsr", modVtab | modUnimpl | modTVec, isVec, 16, rfVpr},
{ 31, 39, &itypeX, 0, "lvehx", modVtab | modUnimpl | modTVec, isRead, 2, rfVpr},
{ 31, 40, &itypeXO, 0, "subf", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 53, &itypeX, 0, "ldux", modVtab, isRead, 8, rfGpr},
{ 31, 54, &itypeX, xrarb, "dcbst", modVab | modUnimpl, isRead, 128, dNoFmt},
{ 31, 55, &itypeX, 0, "lwzux", modVtab | modUpd, isRead, 4, rfGpr},
{ 31, 58, &itypeX, 0, "cntlzd", modVta | modUnimpl, isScalar, 4, rfGpr},
{ 31, 60, &itypeX, xlogx, "andc", modVtab | modandc, isScalar, 4, rfGpr | dSwapTA},
{ 31, 68, &itypeX, xtrap, "td", modVtab | modUnimpl, isTrap, 8, 0},
{ 31, 71, &itypeX, 0, "lvewx", modVtab | modUnimpl | modTVec, isRead, 4, rfVpr},
{ 31, 73, &itypeXO, 0, "mulhd", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 75, &itypeXO, 0, "mulhw", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 83, &itypeX, xrt, "mfmsr", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 84, &itypeX, 0, "ldarx", modVtab | modUnimpl | modRsvn, isRead, 8, rfGpr},
{ 31, 86, &itypeX, xrarb, "dcbf", modVab | modUnimpl, isRead, 128, dNoFmt},
{ 31, 87, &itypeX, 0, "lbzx", modVtab, isRead, 1, rfGpr},
{ 31, 103, &itypeX, 0, "lvx", modVtab | modUnimpl | modTVec, isRead, 32, rfGpr},
{ 31, 104, &itypeXO, 0, "neg", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 119, &itypeX, 0, "lbzux", modVtab | modUpd, isRead, 1, rfGpr | dSwapTA},
{ 31, 124, &itypeX, xlogx, "nor", modVtab | modnor, isScalar, 4, rfGpr | dSwapTA},
{ 31, 135, &itypeX, 0, "stvebx", modVtab | modUnimpl | modTVec, isWrite, 1, rfVpr},
{ 31, 136, &itypeXO, 0, "subfe", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 138, &itypeXO, xadde, "adde", modVtab, isScalar, 4, rfGpr},
{ 31, 144, &itypeXFX, xmtcrf, "mtcrf", modVt | modUnimpl, isScalar, 4, rfSpr | (sPcr << 8)}, { 31, 146, &itypeX, xmtmsrx, "mtmsr", modVtab | modUnimpl | modPrv, isScalar, 4, rfSpr | (sPmsr << 8)},
{ 31, 149, &itypeX, 0, "stdx", modVtab, isWrite, 8, rfGpr},
{ 31, 150, &itypeX, 0, "stwcx", modVtab | modUnimpl | modRsvn, isWrite, 4, rfGpr},
{ 31, 151, &itypeX, 0, "stwx", modVtab, isWrite, 4, rfGpr},
{ 31, 167, &itypeX, 0, "stvehx", modVtab | modUnimpl | modTVec, isWrite, 2, rfVpr},
{ 31, 178, &itypeX, xmtmsrx, "mtmsrd", modVtab | modUnimpl | modPrv, isScalar, 8, rfSpr | (sPmsr << 8)},
{ 31, 181, &itypeX, 0, "stdux", modVtab | modUpd, isWrite, 8, rfGpr},
{ 31, 183, &itypeX, 0, "stwux", modVtab | modUpd, isWrite, 4, rfGpr},
{ 31, 199, &itypeX, 0, "stvewx", modVtab | modUnimpl | modTVec, isWrite, 4, rfVpr},
{ 31, 200, &itypeXO, 0, "subfze", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 202, &itypeXO, xaddze, "addze", modVtab, isScalar, 4, rfGpr},
{ 31, 210, &itypeX, xmtsr, "mtsr", modVtab | modUnimpl, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 31, 214, &itypeX, 0, "stdcx", modVtab | modUnimpl | modRsvn, isWrite, 8, rfGpr},
{ 31, 215, &itypeX, 0, "stbx", modVtab, isWrite, 1, rfGpr},
{ 31, 231, &itypeX, 0, "stvx", modVtab | modUnimpl | modTVec, isWrite, 32, rfVpr},
{ 31, 232, &itypeXO, 0, "subfme", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 233, &itypeXO, 0, "mulld", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 234, &itypeXO, xaddme, "addme", modVtab, isScalar, 4, rfGpr},
{ 31, 235, &itypeXO, 0, "mullw", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 242, &itypeX, xrtrb, "mtsrin", modVtab | modUnimpl | modPrv, isScalar, 4, rfSpr | (sPmsr << 8)},
{ 31, 246, &itypeX, xrarb, "dcbtst", modVab | modUnimpl, isRead, 128, dNoFmt},
{ 31, 247, &itypeX, 0, "stbux", modVtab | modUpd, isWrite, 1, rfGpr},
{ 31, 266, &itypeXO, xadd, "add", modVtab, isScalar, 4, rfGpr},
{ 31, 274, &itypeX, xtlbiex, "tlbiel", modVtab | modUnimpl | modPrv, isScalar, 0, dNoFmt},
{ 31, 278, &itypeX, xrarb, "dcbt", modVab | modUnimpl, isRead, 128, dNoFmt},
{ 31, 279, &itypeX, 0, "lhzx", modVtab, isRead, 2, rfGpr},
{ 31, 284, &itypeX, xlogx, "eqv", modVtab | modeqv, isScalar, 4, rfGpr | dSwapTA},
{ 31, 306, &itypeX, xtlbiex, "tlbie", modVtab | modUnimpl | modPrv, isScalar, 0, 0},
{ 31, 310, &itypeX, 0, "eciwx", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 311, &itypeX, 0, "lhzux", modVtab | modUpd, isRead, 2, rfGpr},
{ 31, 316, &itypeX, xlogx, "xor", modVtab | modor, isScalar, 4, rfGpr | dSwapTA},
{ 31, 339, &itypeXFX, xmfspr, "mfspr", modVt, isScalar, 4, rfGpr},
{ 31, 341, &itypeX, 0, "lwax", modVtab | modSxtnd, isRead, 4, rfGpr},
{ 31, 342, &itypeX, xdstx, "dst", modVtab | modUnimpl, isScalar, 4, rfGpr | dNoFmt},
{ 31, 343, &itypeX, 0, "lhax", modVtab | modSxtnd, isRead, 2, rfGpr},
{ 31, 359, &itypeX, 0, "lvxl", modVtab | modUnimpl | modTVec, isRead, 32, rfVpr},
{ 31, 370, &itypeX, xoponly, "tlbia", modVtab | modUnimpl | modPrv, isScalar, 4, dSkip},
{ 31, 371, &itypeXFX, xmftb, "mftb", modVt | modUnimpl, isScalar, 4, rfSpr | (sPtb << 8)},
{ 31, 373, &itypeX, 0, "lwaux", modVtab | modUpd, isRead, 4, rfGpr},
{ 31, 374, &itypeX, xdstx, "dstst", modVtab | modUnimpl, isScalar, 128, 0},
{ 31, 375, &itypeX, 0, "lhaux", modVtab | modSxtnd | modUpd, isRead, 2, rfGpr},
{ 31, 402, &itypeX, xrtrb, "slbmte", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 407, &itypeX, 0, "sthx", modVtab, isWrite, 2, rfGpr},
{ 31, 412, &itypeX, xlogx, "orc", modVtab | modorc, isScalar, 4, rfGpr | dSwapTA},
{ 31, 413, &itypeXS, 0, "sradi", modVta | modUnimpl, isScalar, 8, dSwapTA | rfGpr},
{ 31, 434, &itypeX, xrb, "slbie", modVtab | modUnimpl | modPrv, isScalar, 0, dNoFmt},
{ 31, 438, &itypeX, 0, "ecowx", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 439, &itypeX, 0, "sthux", modVtab | modUpd, isScalar, 4, rfGpr},
{ 31, 444, &itypeX, xlogx, "or", modVtab | modor, isScalar, 4, rfGpr | dSwapTA},
{ 31, 457, &itypeXO, 0, "divdu", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 459, &itypeXO, 0, "divwu", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 467, &itypeXFX, xmtspr, "mtspr", modVt, isScalar, 8, rfSpr},
{ 31, 476, &itypeX, xlogx, "nand", modVtab | modnand, isScalar, 4, rfGpr | dSwapTA},
{ 31, 487, &itypeX, 0, "stvxl", modVtab | modUnimpl | modTVec, isWrite, 32, rfVpr},
{ 31, 489, &itypeXO, 0, "divd", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 491, &itypeXO, 0, "divw", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 498, &itypeX, xoponly, "slbia", modVtab | modUnimpl | modPrv, isScalar, 0, dSkip},
{ 31, 512, &itypeX, xmcrxr, "mcrxr", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 533, &itypeX, 0, "lswx", modVtab | modUnimpl, isRead, 4, rfGpr},
{ 31, 534, &itypeX, 0, "lwbrx", modVtab | modUnimpl, isRead, 4, rfGpr},
{ 31, 535, &itypeX, 0, "lfsx", modVtab | modUnimpl, isRead, 4, rfFpr},
{ 31, 536, &itypeX, xrot, "srw", modVtab | modUseRB | modShift | modShRight | modROTL32, isScalar, 4, rfGpr},
{ 31, 539, &itypeX, xrot, "srd", modVtab | modUseRB | modShift | modShRight, isScalar, 4, rfGpr},
{ 31, 566, &itypeX, xoponly, "tlbsync", modVtab | modUnimpl | modPrv, isScalar, 0, dSkip},
{ 31, 567, &itypeX, 0, "lfsux", modVtab | modUpd, isScalar, 4, rfFpr},
{ 31, 595, &itypeX, xmfsr, "mfsr", modVtab | modUnimpl | modPrv, isScalar, 4, rfSpr | (sPunimp << 8)},
{ 31, 597, &itypeX, xlswi, "lswi", modVtab | modUnimpl, isScalar, 4, rfGpr | dNoFmt},
{ 31, 598, &itypeX, xsync, "sync", modVtab | modUnimpl, isScalar, 0, dNoFmt},
{ 31, 599, &itypeX, 0, "lfdx", modVtab | modUnimpl, isRead, 8, rfFpr},
{ 31, 631, &itypeX, 0, "lfdux", modVtab | modUnimpl | modUpd, isRead, 8, rfFpr},
{ 31, 659, &itypeX, xrtrb, "mfsrin", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 661, &itypeX, 0, "stswx", modVtab | modUnimpl, isWrite, 4, rfFpr},
{ 31, 662, &itypeX, 0, "stwbrx", modVtab, isWrite, 4, rfGpr},
{ 31, 663, &itypeX, 0, "stfsx", modVtab | modUnimpl, isWrite, 4, rfFpr},
{ 31, 695, &itypeX, 0, "stfsux", modVtab | modUnimpl | modUpd, isWrite, 4, rfFpr},
{ 31, 725, &itypeX, xstswi, "stswi", modVtab | modUnimpl, isWrite, 4, rfGpr | dNoFmt},
{ 31, 727, &itypeX, 0, "stfdx", modVtab | modUnimpl, isWrite, 8, rfFpr},
{ 31, 759, &itypeX, 0, "stfdux", modVtab | modUnimpl | modUpd, isWrite, 8, rfFpr},
{ 31, 790, &itypeX, 0, "lhbrx", modVtab | modUnimpl, isScalar, 42, rfGpr},
{ 31, 792, &itypeX, 0, "sraw", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 794, &itypeX, 0, "srad", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 822, &itypeX, xdss, "dss", modVtab | modUnimpl, isScalar, 4, rfGpr},
{ 31, 824, &itypeX, xsrawi, "srawi", modVtab | modUnimpl, isScalar, 4, dSwapTA | dNoFmt | rfGpr},
{ 31, 851, &itypeX, xrtrb, "slbmfev", modVtab | modUnimpl | modPrv, isScalar, 0, 0},
{ 31, 854, &itypeX, xoponly, "eieio", modVtab, isScalar, 4, dSkip},
{ 31, 915, &itypeX, xrtrb, "slbmfee", modVtab | modUnimpl | modPrv, isScalar, 4, rfGpr},
{ 31, 918, &itypeX, 0, "sthbrx", modVtab, isWrite, 2, rfGpr},
{ 31, 922, &itypeX, xext, "extsh", modVta | modSxtnd, isScalar, 2, dSwapTA | rfGpr},
{ 31, 954, &itypeX, xext, "extsb", modVta | modSxtnd, isScalar, 1, dSwapTA | rfGpr},
{ 31, 982, &itypeX, xrarb, "icbi", modVta, isRead, 128, dNoFmt},
{ 31, 983, &itypeX, 0, "stfiwx", modVtab | modUnimpl, isWrite, 4, rfFpr},
{ 31, 986, &itypeX, xext, "extsw", modVta | modSxtnd, isScalar, 4, dSwapTA | rfGpr},
{ 31, 1014, &itypeX, xrarb, "dcbz", modVab | modUnimpl, isWrite, 128, dNoFmt},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm32[] = {
{ 32, 0, &itypeD, 0, "lwz", modVta, isRead, 4, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm33[] = {
{ 33, 0, &itypeD, 0, "lwzu", modVta | modUpd, isRead, 4, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm34[] = {
{ 34, 0, &itypeD, 0, "lbz", modVta, isRead, 1, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm35[] = {
{ 35, 0, &itypeD, 0, "lbzu", modVta | modUpd, isRead, 1, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm36[] = {
{ 36, 0, &itypeD, 0, "stw", modVta | modTnomod, isWrite, 4, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm37[] = {
{ 37, 0, &itypeD, 0, "stwu", modVta | modUpd | modTnomod, isWrite, 4, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm38[] = {
{ 38, 0, &itypeD, 0, "stb", modVta | modTnomod, isWrite, 1, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm39[] = {
{ 39, 0, &itypeD, 0, "stbu", modVta | modUpd | modTnomod, isWrite, 1, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm40[] = {
{ 40, 0, &itypeD, 0, "lhz", modVta, isRead, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm41[] = {
{ 41, 0, &itypeD, 0, "lhzu", modVta | modUpd, isRead, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm42[] = {
{ 42, 0, &itypeD, 0, "lha", modVta | modSxtnd, isRead, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm43[] = {
{ 43, 0, &itypeD, 0, "lhau", modVta | modUpd | modSxtnd, isRead, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm44[] = {
{ 44, 0, &itypeD, 0, "sth", modVta | modTnomod, isWrite, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm45[] = {
{ 45, 0, &itypeD, 0, "sthu", modVta | modUpd | modTnomod, isWrite, 2, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm46[] = {
{ 46, 0, &itypeD, xmw, "lmw", modVta | modM4, isRead, 0, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm47[] = {
{ 47, 0, &itypeD, xmw, "stmw", modVta | modM4 | modTnomod, isWrite, 0, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm48[] = {
{ 48, 0, &itypeD, 0, "lfs", modVta | modTFpu, isRead, 4, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm49[] = {
{ 49, 0, &itypeD, 0, "lfsu", modVta | modUpd | modTFpu, isRead, 4, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm50[] = {
{ 50, 0, &itypeD, 0, "lfd", modVta | modTFpu, isRead, 8, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm51[] = {
{ 51, 0, &itypeD, 0, "lfdu", modVta | modUpd | modTFpu, isRead, 8, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm52[] = {
{ 52, 0, &itypeD, 0, "stfs", modVta | modTnomod | modTFpu, isWrite, 4, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm53[] = {
{ 53, 0, &itypeD, 0, "stfsu", modVta | modUpd | modTnomod | modTFpu, isWrite, 4, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm54[] = {
{ 54, 0, &itypeD, 0, "stfd", modVta | modTnomod | modTFpu, isWrite, 8, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm55[] = {
{ 55, 0, &itypeD, 0, "stfdu", modVta | modUpd | modTnomod | modTFpu, isWrite, 8, rfFpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm58[] = {
{ 58, 0, &itypeDS, 0, "ld", modVta, isRead, 8, rfGpr | dBd},
{ 58, 1, &itypeDS, 0, "ldu", modVta | modUpd, isRead, 8, rfGpr | dBd},
{ 58, 2, &itypeDS, 0, "lwa", modVta | modSxtnd, isRead, 4, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm59[] = {
{ 59, 18, &itypeA, 0, "fdivs", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 59, 20, &itypeA, 0, "fsubs", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 59, 21, &itypeA, 0, "fadds", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 59, 22, &itypeA, 0, "fsqrts", modFAtb | modUnimpl, isFpu, 4, rfFpr},
{ 59, 24, &itypeA, 0, "fres", modFAtb | modUnimpl, isFpu, 4, rfFpr},
{ 59, 25, &itypeA, 0, "fmuls", modFAtac | modUnimpl, isFpu, 4, rfFpr},
{ 59, 28, &itypeA, 0, "fmsubs", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 59, 29, &itypeA, 0, "fmadds", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 59, 30, &itypeA, 0, "fnmsubs", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 59, 31, &itypeA, 0, "fnmadds", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm62[] = {
{ 62, 0, &itypeDS, 0, "std", modVta | modTnomod, isWrite, 8, rfGpr | dBd},
{ 62, 1, &itypeDS, 0, "stdu", modVta | modUpd | modTnomod, isWrite, 8, rfGpr | dBd},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst ppcm63[] = {
{ 63, 0, &itypeX, xfcmpx, "fcmpu", modVtab | modUnimpl | modTnomod, isFpu, 4, dNoFmt | rfFpr},
{ 63, 12, &itypeX, xftfb, "frsp", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 14, &itypeX, xftfb, "fctiw", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 15, &itypeX, xftfb, "fctiwz", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 18, &itypeA, 0, "fdiv", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 20, &itypeA, 0, "fsub", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 21, &itypeA, 0, "fadd", modFAtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 22, &itypeA, 0, "fsqrt", modFAtb | modUnimpl, isFpu, 4, rfFpr},
{ 63, 23, &itypeA, 0, "fsel", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 63, 25, &itypeA, 0, "fmul", modFAtac | modUnimpl, isFpu, 4, rfFpr},
{ 63, 26, &itypeA, 0, "frsqrte", modFAtb | modUnimpl, isFpu, 4, rfFpr},
{ 63, 28, &itypeA, 0, "fmsub", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 63, 29, &itypeA, 0, "fmadd", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 63, 30, &itypeA, 0, "fnmsub", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 63, 31, &itypeA, 0, "fnmadd", modFAtabc | modUnimpl, isFpu, 4, rfFpr},
{ 63, 32, &itypeX, xfcmpx, "fcmpo", modVtab | modUnimpl | modTnomod, isFpu, 4, dNoFmt | rfFpr},
{ 63, 38, &itypeX, xrt, "mtfsb1", modVtab | modUnimpl, isFpu, 4, rfSpr | (sPfpscr << 8)},
{ 63, 40, &itypeX, xftfb, "fneg", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 64, &itypeX, xmcrfs, "mcrfs", modVtab | modUnimpl, isFpu, 4, rfSpr | (sPcr << 8)},
{ 63, 70, &itypeX, xrt, "mtfsb0", modVtab | modUnimpl, isFpu, 4, rfSpr | (sPfpscr << 8)},
{ 63, 72, &itypeX, xftfb, "fmr", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 134, &itypeX, xmtfsfi, "mtfsfi", modVtab | modUnimpl, isFpu, 4, rfSpr | (sPfpscr << 8)},
{ 63, 136, &itypeX, xftfb, "fnabs", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 264, &itypeX, xftfb, "fabs", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 583, &itypeX, xmffs, "mffs", modVtab | modUnimpl, isFpu, 4, rfSpr | (sPfpscr << 8)},
{ 63, 711, &itypeXFL, 0, "mtfsf", modVtb | modUnimpl, isFpu, 4, rfSpr | (sPfpscr << 8)},
{ 63, 814, &itypeX, xftfb, "fctid", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 815, &itypeX, xftfb, "fctidz", modVtab | modUnimpl, isFpu, 4, rfFpr},
{ 63, 846, &itypeX, xftfb, "fcfid", modVtab | modUnimpl, isFpu, 4, rfFpr},
{-1, -1, 0, 0, 0, 0, 0, 0}
};
ppcinst *majops[] = {
0,
0,
ppcm02,
ppcm03,
ppcm04,
0,
0,
ppcm07,
ppcm08,
0,
ppcm10,
ppcm11,
ppcm12,
ppcm13,
ppcm14,
ppcm15,
ppcm16,
ppcm17,
ppcm18,
ppcm19,
ppcm20,
ppcm21,
0,
ppcm23,
ppcm24,
ppcm25,
ppcm26,
ppcm27,
ppcm28,
ppcm29,
ppcm30,
ppcm31,
ppcm32,
ppcm33,
ppcm34,
ppcm35,
ppcm36,
ppcm37,
ppcm38,
ppcm39,
ppcm40,
ppcm41,
ppcm42,
ppcm43,
ppcm44,
ppcm45,
ppcm46,
ppcm47,
ppcm48,
ppcm49,
ppcm50,
ppcm51,
ppcm52,
ppcm53,
ppcm54,
ppcm55,
0,
0,
ppcm58,
ppcm59,
0,
0,
ppcm62,
ppcm63
};