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}, // also MFOCRF { 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)}, // also MTOCRF { 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 };