Home | History | Annotate | Download | only in priv

Lines Matching refs:Pin

757    i->Pin.LI.dst   = dst;
758 i->Pin.LI.imm64 = imm64;
767 i->Pin.Alu.op = op;
768 i->Pin.Alu.dst = dst;
769 i->Pin.Alu.srcL = srcL;
770 i->Pin.Alu.srcR = srcR;
777 i->Pin.Shft.op = op;
778 i->Pin.Shft.sz32 = sz32;
779 i->Pin.Shft.dst = dst;
780 i->Pin.Shft.srcL = srcL;
781 i->Pin.Shft.srcR = srcR;
788 i->Pin.AddSubC.isAdd = isAdd;
789 i->Pin.AddSubC.setC = setC;
790 i->Pin.AddSubC.dst = dst;
791 i->Pin.AddSubC.srcL = srcL;
792 i->Pin.AddSubC.srcR = srcR;
799 i->Pin.Cmp.syned = syned;
800 i->Pin.Cmp.sz32 = sz32;
801 i->Pin.Cmp.crfD = crfD;
802 i->Pin.Cmp.srcL = srcL;
803 i->Pin.Cmp.srcR = srcR;
809 i->Pin.Unary.op = op;
810 i->Pin.Unary.dst = dst;
811 i->Pin.Unary.src = src;
818 i->Pin.MulL.syned = syned;
819 i->Pin.MulL.hi = hi;
820 i->Pin.MulL.sz32 = sz32;
821 i->Pin.MulL.dst = dst;
822 i->Pin.MulL.srcL = srcL;
823 i->Pin.MulL.srcR = srcR;
833 i->Pin.Div.extended = extended;
834 i->Pin.Div.syned = syned;
835 i->Pin.Div.sz32 = sz32;
836 i->Pin.Div.dst = dst;
837 i->Pin.Div.srcL = srcL;
838 i->Pin.Div.srcR = srcR;
846 i->Pin.Call.cond = cond;
847 i->Pin.Call.target = target;
848 i->Pin.Call.argiregs = argiregs;
858 i->Pin.XDirect.dstGA = dstGA;
859 i->Pin.XDirect.amCIA = amCIA;
860 i->Pin.XDirect.cond = cond;
861 i->Pin.XDirect.toFastEP = toFastEP;
868 i->Pin.XIndir.dstGA = dstGA;
869 i->Pin.XIndir.amCIA = amCIA;
870 i->Pin.XIndir.cond = cond;
877 i->Pin.XAssisted.dstGA = dstGA;
878 i->Pin.XAssisted.amCIA = amCIA;
879 i->Pin.XAssisted.cond = cond;
880 i->Pin.XAssisted.jk = jk;
887 i->Pin.CMov.cond = cond;
888 i->Pin.CMov.src = src;
889 i->Pin.CMov.dst = dst;
897 i->Pin.Load.sz = sz;
898 i->Pin.Load.src = src;
899 i->Pin.Load.dst = dst;
909 i->Pin.LoadL.sz = sz;
910 i->Pin.LoadL.src = src;
911 i->Pin.LoadL.dst = dst;
920 i->Pin.Store.sz = sz;
921 i->Pin.Store.src = src;
922 i->Pin.Store.dst = dst;
930 i->Pin.StoreC.sz = sz;
931 i->Pin.StoreC.src = src;
932 i->Pin.StoreC.dst = dst;
940 i->Pin.Set.cond = cond;
941 i->Pin.Set.dst = dst;
948 i->Pin.MfCR.dst = dst;
961 i->Pin.FpUnary.op = op;
962 i->Pin.FpUnary.dst = dst;
963 i->Pin.FpUnary.src = src;
970 i->Pin.FpBinary.op = op;
971 i->Pin.FpBinary.dst = dst;
972 i->Pin.FpBinary.srcL = srcL;
973 i->Pin.FpBinary.srcR = srcR;
981 i->Pin.FpMulAcc.op = op;
982 i->Pin.FpMulAcc.dst = dst;
983 i->Pin.FpMulAcc.srcML = srcML;
984 i->Pin.FpMulAcc.srcMR = srcMR;
985 i->Pin.FpMulAcc.srcAcc = srcAcc;
992 i->Pin.FpLdSt.isLoad = isLoad;
993 i->Pin.FpLdSt.sz = sz;
994 i->Pin.FpLdSt.reg = reg;
995 i->Pin.FpLdSt.addr = addr;
1003 i->Pin.FpSTFIW.addr = addr;
1004 i->Pin.FpSTFIW.data = data;
1010 i->Pin.FpRSP.dst = dst;
1011 i->Pin.FpRSP.src = src;
1017 i->Pin.Dfp64Unary.op = op;
1018 i->Pin.Dfp64Unary.dst = dst;
1019 i->Pin.Dfp64Unary.src = src;
1025 i->Pin.Dfp64Binary.op = op;
1026 i->Pin.Dfp64Binary.dst = dst;
1027 i->Pin.Dfp64Binary.srcL = srcL;
1028 i->Pin.Dfp64Binary.srcR = srcR;
1034 i->Pin.DfpShift.op = op;
1035 i->Pin.DfpShift.shift = shift;
1036 i->Pin.DfpShift.src = src;
1037 i->Pin.DfpShift.dst = dst;
1044 i->Pin.Dfp128Unary.op = op;
1045 i->Pin.Dfp128Unary.dst_hi = dst_hi;
1046 i->Pin.Dfp128Unary.dst_lo = dst_lo;
1047 i->Pin.Dfp128Unary.src_hi = src_hi;
1048 i->Pin.Dfp128Unary.src_lo = src_lo;
1056 i->Pin.Dfp128Binary.op = op;
1057 i->Pin.Dfp128Binary.dst_hi = dst_hi;
1058 i->Pin.Dfp128Binary.dst_lo = dst_lo;
1059 i->Pin.Dfp128Binary.srcR_hi = srcR_hi;
1060 i->Pin.Dfp128Binary.srcR_lo = srcR_lo;
1068 i->Pin.DfpShift128.op = op;
1069 i->Pin.DfpShift128.shift = shift;
1070 i->Pin.DfpShift128.src_hi = src_hi;
1071 i->Pin.DfpShift128.src_lo = src_lo;
1072 i->Pin.DfpShift128.dst_hi = dst_hi;
1073 i->Pin.DfpShift128.dst_lo = dst_lo;
1079 i->Pin.DfpRound.dst = dst;
1080 i->Pin.DfpRound.src = src;
1081 i->Pin.DfpRound.r_rmc = r_rmc;
1088 i->Pin.DfpRound128.dst_hi = dst_hi;
1089 i->Pin.DfpRound128.dst_lo = dst_lo;
1090 i->Pin.DfpRound128.src_hi = src_hi;
1091 i->Pin.DfpRound128.src_lo = src_lo;
1092 i->Pin.DfpRound128.r_rmc = r_rmc;
1099 i->Pin.DfpQuantize.op = op;
1100 i->Pin.DfpQuantize.dst = dst;
1101 i->Pin.DfpQuantize.srcL = srcL;
1102 i->Pin.DfpQuantize.srcR = srcR;
1103 i->Pin.DfpQuantize.rmc = rmc;
1111 i->Pin.DfpQuantize128.op = op;
1112 i->Pin.DfpQuantize128.dst_hi = dst_hi;
1113 i->Pin.DfpQuantize128.dst_lo = dst_lo;
1114 i->Pin.DfpQuantize128.src_hi = src_hi;
1115 i->Pin.DfpQuantize128.src_lo = src_lo;
1116 i->Pin.DfpQuantize128.rmc = rmc;
1123 i->Pin.DfpD128toD64.op = op;
1124 i->Pin.DfpD128toD64.src_hi = src_hi;
1125 i->Pin.DfpD128toD64.src_lo = src_lo;
1126 i->Pin.DfpD128toD64.dst = dst;
1133 i->Pin.DfpI64StoD128.op = op;
1134 i->Pin.DfpI64StoD128.src = src;
1135 i->Pin.DfpI64StoD128.dst_hi = dst_hi;
1136 i->Pin.DfpI64StoD128.dst_lo = dst_lo;
1144 i->Pin.ExtractExpD128.op = op;
1145 i->Pin.ExtractExpD128.dst = dst;
1146 i->Pin.ExtractExpD128.src_hi = src_hi;
1147 i->Pin.ExtractExpD128.src_lo = src_lo;
1155 i->Pin.InsertExpD128.op = op;
1156 i->Pin.InsertExpD128.dst_hi = dst_hi;
1157 i->Pin.InsertExpD128.dst_lo = dst_lo;
1158 i->Pin.InsertExpD128.srcL = srcL;
1159 i->Pin.InsertExpD128.srcR_hi = srcR_hi;
1160 i->Pin.InsertExpD128.srcR_lo = srcR_lo;
1166 i->Pin.Dfp64Cmp.dst = dst;
1167 i->Pin.Dfp64Cmp.srcL = srcL;
1168 i->Pin.Dfp64Cmp.srcR = srcR;
1175 i->Pin.Dfp128Cmp.dst = dst;
1176 i->Pin.Dfp128Cmp.srcL_hi = srcL_hi;
1177 i->Pin.Dfp128Cmp.srcL_lo = srcL_lo;
1178 i->Pin.Dfp128Cmp.srcR_hi = srcR_hi;
1179 i->Pin.Dfp128Cmp.srcR_lo = srcR_lo;
1186 i->Pin.EvCheck.amCounter = amCounter;
1187 i->Pin.EvCheck.amFailAddr = amFailAddr;
1248 i->Pin.FpCftI.fromI = fromI;
1249 i->Pin.FpCftI.int32 = int32;
1250 i->Pin.FpCftI.syned = syned;
1251 i->Pin.FpCftI.flt64 = flt64;
1252 i->Pin.FpCftI.dst = dst;
1253 i->Pin.FpCftI.src = src;
1259 i->Pin.FpCMov.cond = cond;
1260 i->Pin.FpCMov.dst = dst;
1261 i->Pin.FpCMov.src = src;
1268 i->Pin.FpLdFPSCR.src = src;
1269 i->Pin.FpLdFPSCR.dfp_rm = dfp_rm ? 1 : 0;
1275 i->Pin.FpCmp.dst = dst;
1276 i->Pin.FpCmp.srcL = srcL;
1277 i->Pin.FpCmp.srcR = srcR;
1285 i->Pin.RdWrLR.wrLR = wrLR;
1286 i->Pin.RdWrLR.gpr = gpr;
1295 i->Pin.AvLdSt.isLoad = isLoad;
1296 i->Pin.AvLdSt.sz = sz;
1297 i->Pin.AvLdSt.reg = reg;
1298 i->Pin.AvLdSt.addr = addr;
1304 i->Pin.AvUnary.op = op;
1305 i->Pin.AvUnary.dst = dst;
1306 i->Pin.AvUnary.src = src;
1313 i->Pin.AvBinary.op = op;
1314 i->Pin.AvBinary.dst = dst;
1315 i->Pin.AvBinary.srcL = srcL;
1316 i->Pin.AvBinary.srcR = srcR;
1323 i->Pin.AvBin8x16.op = op;
1324 i->Pin.AvBin8x16.dst = dst;
1325 i->Pin.AvBin8x16.srcL = srcL;
1326 i->Pin.AvBin8x16.srcR = srcR;
1333 i->Pin.AvBin16x8.op = op;
1334 i->Pin.AvBin16x8.dst = dst;
1335 i->Pin.AvBin16x8.srcL = srcL;
1336 i->Pin.AvBin16x8.srcR = srcR;
1343 i->Pin.AvBin32x4.op = op;
1344 i->Pin.AvBin32x4.dst = dst;
1345 i->Pin.AvBin32x4.srcL = srcL;
1346 i->Pin.AvBin32x4.srcR = srcR;
1353 i->Pin.AvBin32Fx4.op = op;
1354 i->Pin.AvBin32Fx4.dst = dst;
1355 i->Pin.AvBin32Fx4.srcL = srcL;
1356 i->Pin.AvBin32Fx4.srcR = srcR;
1362 i->Pin.AvUn32Fx4.op = op;
1363 i->Pin.AvUn32Fx4.dst = dst;
1364 i->Pin.AvUn32Fx4.src = src;
1370 i->Pin.AvPerm.dst = dst;
1371 i->Pin.AvPerm.srcL = srcL;
1372 i->Pin.AvPerm.srcR = srcR;
1373 i->Pin.AvPerm.ctl = ctl;
1379 i->Pin.AvSel.ctl = ctl;
1380 i->Pin.AvSel.dst = dst;
1381 i->Pin.AvSel.srcL = srcL;
1382 i->Pin.AvSel.srcR = srcR;
1389 i->Pin.AvShlDbl.shift = shift;
1390 i->Pin.AvShlDbl.dst = dst;
1391 i->Pin.AvShlDbl.srcL = srcL;
1392 i->Pin.AvShlDbl.srcR = srcR;
1398 i->Pin.AvSplat.sz = sz;
1399 i->Pin.AvSplat.dst = dst;
1400 i->Pin.AvSplat.src = src;
1406 i->Pin.AvCMov.cond = cond;
1407 i->Pin.AvCMov.dst = dst;
1408 Pin.AvCMov.src = src;
1415 i->Pin.AvLdVSCR.src = src;
1444 ppLoadImm(i->Pin.LI.dst, i->Pin.LI.imm64, mode64);
1447 HReg r_srcL = i->Pin.Alu.srcL;
1448 PPCRH* rh_srcR = i->Pin.Alu.srcR;
1450 if (i->Pin.Alu.op == Palu_OR && // or Rd,Rs,Rs == mr Rd,Rs
1454 ppHRegPPC(i->Pin.Alu.dst);
1460 if (i->Pin.Alu.op == Palu_ADD && // addi Rd,0,imm == li Rd,imm
1464 ppHRegPPC(i->Pin.Alu.dst);
1470 vex_printf("%s ", showPPCAluOp(i->Pin.Alu.op,
1472 ppHRegPPC(i->Pin.Alu.dst);
1480 HReg r_srcL = i->Pin.Shft.srcL;
1481 PPCRH* rh_srcR = i->Pin.Shft.srcR;
1482 vex_printf("%s ", showPPCShftOp(i->Pin.Shft.op,
1484 i->Pin.Shft.sz32));
1485 ppHRegPPC(i->Pin.Shft.dst);
1494 i->Pin.AddSubC.isAdd ? "add" : "sub",
1495 i->Pin.AddSubC.setC ? "c" : "e");
1496 ppHRegPPC(i->Pin.AddSubC.dst);
1498 ppHRegPPC(i->Pin.AddSubC.srcL);
1500 ppHRegPPC(i->Pin.AddSubC.srcR);
1504 i->Pin.Cmp.syned ? "cmp" : "cmpl",
1505 i->Pin.Cmp.sz32 ? 'w' : 'd',
1506 i->Pin.Cmp.srcR->tag == Prh_Imm ? "i" : "",
1507 i->Pin.Cmp.crfD);
1508 ppHRegPPC(i->Pin.Cmp.srcL);
1510 ppPPCRH(i->Pin.Cmp.srcR);
1513 vex_printf("%s ", showPPCUnaryOp(i->Pin.Unary.op));
1514 ppHRegPPC(i->Pin.Unary.dst);
1516 ppHRegPPC(i->Pin.Unary.src);
1520 i->Pin.MulL.hi ? 'h' : 'l',
1521 i->Pin.MulL.sz32 ? 'w' : 'd',
1522 i->Pin.MulL.hi ? (i->Pin.MulL.syned ? "s" : "u") : "");
1523 ppHRegPPC(i->Pin.MulL.dst);
1525 ppHRegPPC(i->Pin.MulL.srcL);
1527 ppHRegPPC(i->Pin.MulL.srcR);
1531 i->Pin.Div.sz32 ? 'w' : 'd',
1532 i->Pin.Div.extended ? "e" : "",
1533 i->Pin.Div.syned ? "" : "u");
1534 ppHRegPPC(i->Pin.Div.dst);
1536 ppHRegPPC(i->Pin.Div.srcL);
1538 ppHRegPPC(i->Pin.Div.srcR);
1543 if (i->Pin.Call.cond.test != Pct_ALWAYS) {
1544 vex_printf("if (%s) ", showPPCCondCode(i->Pin.Call.cond));
1547 ppLoadImm(hregPPC_GPR10(mode64), i->Pin.Call.target, mode64);
1550 if (i->Pin.Call.argiregs & (1<<n)) {
1552 if ((i->Pin.Call.argiregs >> n) > 1)
1562 showPPCCondCode(i->Pin.XDirect.cond));
1564 vex_printf("imm64 r30,0x%llx; ", i->Pin.XDirect.dstGA);
1567 vex_printf("imm32 r30,0x%llx; ", i->Pin.XDirect.dstGA);
1570 ppPPCAMode(i->Pin.XDirect.amCIA);
1574 i->Pin.XDirect.toFastEP ? "fast" : "slow");
1577 i->Pin.XDirect.toFastEP ? "fast" : "slow");
1584 showPPCCondCode(i->Pin.XIndir.cond));
1586 ppHRegPPC(i->Pin.XIndir.dstGA);
1588 ppPPCAMode(i->Pin.XIndir.amCIA);
1596 showPPCCondCode(i->Pin.XAssisted.cond));
1598 ppHRegPPC(i->Pin.XAssisted.dstGA);
1600 ppPPCAMode(i->Pin.XAssisted.amCIA);
1603 (Int)i->Pin.XAssisted.jk);
1608 vex_printf("cmov (%s) ", showPPCCondCode(i->Pin.CMov.cond));
1609 ppHRegPPC(i->Pin.CMov.dst);
1611 ppPPCRI(i->Pin.CMov.src);
1613 if (i->Pin.CMov.cond.test != Pct_ALWAYS) {
1614 vex_printf("if (%s) ", showPPCCondCode(i->Pin.CMov.cond));
1617 if (i->Pin.CMov.src->tag == Pri_Imm) {
1618 ppLoadImm(i->Pin.CMov.dst, i->Pin.CMov.src->Pri.Imm, mode64);
1620 ppMovReg(i->Pin.CMov.dst, i->Pin.CMov.src->Pri.Reg);
1625 Bool idxd = toBool(i->Pin.Load.src->tag == Pam_RR);
1626 UChar sz = i->Pin.Load.sz;
1629 ppHRegPPC(i->Pin.Load.dst);
1631 ppPPCAMode(i->Pin.Load.src);
1635 vex_printf("l%carx ", i->Pin.LoadL.sz==4 ? 'w' : 'd');
1636 ppHRegPPC(i->Pin.LoadL.dst);
1638 ppHRegPPC(i->Pin.LoadL.src);
1641 UChar sz = i->Pin.Store.sz;
1642 Bool idxd = toBool(i->Pin.Store.dst->tag == Pam_RR);
1645 ppHRegPPC(i->Pin.Store.src);
1647 ppPPCAMode(i->Pin.Store.dst);
1651 vex_printf("st%ccx. ", i->Pin.StoreC.sz==4 ? 'w' : 'd');
1652 ppHRegPPC(i->Pin.StoreC.src);
1654 ppHRegPPC(i->Pin.StoreC.dst);
1657 PPCCondCode cc = i->Pin.Set.cond;
1659 ppHRegPPC(i->Pin.Set.dst);
1662 ppHRegPPC(i->Pin.Set.dst);
1666 ppHRegPPC(i->Pin.Set.dst);
1670 ppHRegPPC(i->Pin.Set.dst);
1672 ppHRegPPC(i->Pin.Set.dst);
1681 ppHRegPPC(i->Pin.MfCR.dst);
1688 vex_printf("%s ", showPPCFpOp(i->Pin.FpUnary.op));
1689 ppHRegPPC(i->Pin.FpUnary.dst);
1691 ppHRegPPC(i->Pin.FpUnary.src);
1694 vex_printf("%s ", showPPCFpOp(i->Pin.FpBinary.op));
1695 ppHRegPPC(i->Pin.FpBinary.dst);
1697 ppHRegPPC(i->Pin.FpBinary.srcL);
1699 ppHRegPPC(i->Pin.FpBinary.srcR);
1702 vex_printf("%s ", showPPCFpOp(i->Pin.FpMulAcc.op));
1703 ppHRegPPC(i->Pin.FpMulAcc.dst);
1705 ppHRegPPC(i->Pin.FpMulAcc.srcML);
1707 ppHRegPPC(i->Pin.FpMulAcc.srcMR);
1709 ppHRegPPC(i->Pin.FpMulAcc.srcAcc);
1712 UChar sz = i->Pin.FpLdSt.sz;
1713 Bool idxd = toBool(i->Pin.FpLdSt.addr->tag == Pam_RR);
1714 if (i->Pin.FpLdSt.isLoad) {
1718 ppHRegPPC(i->Pin.FpLdSt.reg);
1720 ppPPCAMode(i->Pin.FpLdSt.addr);
1725 ppHRegPPC(i->Pin.FpLdSt.reg);
1727 ppPPCAMode(i->Pin.FpLdSt.addr);
1733 ppHRegPPC(i->Pin.FpSTFIW.data);
1735 ppHRegPPC(i->Pin.FpSTFIW.addr);
1740 ppHRegPPC(i->Pin.FpRSP.dst);
1742 ppHRegPPC(i->Pin.FpRSP.src);
1748 * (i->Pin.FpCftI.fromI == True && i->Pin.FpCftI.int32 == False)
1753 if (i->Pin.FpCftI.fromI == False && i->Pin.FpCftI.int32 == False)
1754 if (i->Pin.FpCftI.syned == True)
1758 else if (i->Pin.FpCftI.fromI == False && i->Pin.FpCftI.int32 == True)
1759 if (i->Pin.FpCftI.syned == True)
1763 else if (i->Pin.FpCftI.fromI == True && i->Pin.FpCftI.int32 == False) {
1764 if (i->Pin.FpCftI.syned == True) {
1767 if (i->Pin.FpCftI.flt64 == True)
1774 ppHRegPPC(i->Pin.FpCftI.dst);
1776 ppHRegPPC(i->Pin.FpCftI.src);
1780 vex_printf("fpcmov (%s) ", showPPCCondCode(i->Pin.FpCMov.cond));
1781 ppHRegPPC(i->Pin.FpCMov.dst);
1783 ppHRegPPC(i->Pin.FpCMov.src);
1786 if (i->Pin.FpCMov.cond.test != Pct_ALWAYS) {
1787 vex_printf("if (%s) { ", showPPCCondCode(i->Pin.FpCMov.cond));
1790 ppHRegPPC(i->Pin.FpCMov.dst);
1792 ppHRegPPC(i->Pin.FpCMov.src);
1793 if (i->Pin.FpCMov.cond.test != Pct_ALWAYS)
1799 ppHRegPPC(i->Pin.FpLdFPSCR.src);
1800 vex_printf(",0, %s", i->Pin.FpLdFPSCR.dfp_rm ? "1" : "0");
1804 ppHRegPPC(i->Pin.FpCmp.srcL);
1806 ppHRegPPC(i->Pin.FpCmp.srcR);
1808 ppHRegPPC(i->Pin.FpCmp.dst);
1810 ppHRegPPC(i->Pin.FpCmp.dst);
1812 ppHRegPPC(i->Pin.FpCmp.dst);
1817 vex_printf("%s ", i->Pin.RdWrLR.wrLR ? "mtlr" : "mflr");
1818 ppHRegPPC(i->Pin.RdWrLR.gpr);
1822 UChar sz = i->Pin.AvLdSt.sz;
1824 if (i->Pin.AvLdSt.addr->tag == Pam_IR) {
1826 i->Pin.AvLdSt.addr->Pam.RR.index, mode64);
1830 if (i->Pin.AvLdSt.isLoad)
1834 ppHRegPPC(i->Pin.AvLdSt.reg);
1836 if (i->Pin.AvLdSt.addr->tag == Pam_IR)
1839 ppHRegPPC(i->Pin.AvLdSt.addr->Pam.RR.index);
1841 ppHRegPPC(i->Pin.AvLdSt.addr->Pam.RR.base);
1845 vex_printf("%s ", showPPCAvOp(i->Pin.AvUnary.op));
1846 ppHRegPPC(i->Pin.AvUnary.dst);
1848 ppHRegPPC(i->Pin.AvUnary.src);
1851 vex_printf("%s ", showPPCAvOp(i->Pin.AvBinary.op));
1852 ppHRegPPC(i->Pin.AvBinary.dst);
1854 ppHRegPPC(i->Pin.AvBinary.srcL);
1856 ppHRegPPC(i->Pin.AvBinary.srcR);
1859 vex_printf("%s(b) ", showPPCAvOp(i->Pin.AvBin8x16.op));
1860 ppHRegPPC(i->Pin.AvBin8x16.dst);
1862 ppHRegPPC(i->Pin.AvBin8x16.srcL);
1864 ppHRegPPC(i->Pin.AvBin8x16.srcR);
1867 vex_printf("%s(h) ", showPPCAvOp(i->Pin.AvBin16x8.op));
1868 ppHRegPPC(i->Pin.AvBin16x8.dst);
1870 ppHRegPPC(i->Pin.AvBin16x8.srcL);
1872 ppHRegPPC(i->Pin.AvBin16x8.srcR);
1875 vex_printf("%s(w) ", showPPCAvOp(i->Pin.AvBin32x4.op));
1876 ppHRegPPC(i->Pin.AvBin32x4.dst);
1878 ppHRegPPC(i->Pin.AvBin32x4.srcL);
1880 ppHRegPPC(i->Pin.AvBin32x4.srcR);
1883 vex_printf("%s ", showPPCAvFpOp(i->Pin.AvBin32Fx4.op));
1884 ppHRegPPC(i->Pin.AvBin32Fx4.dst);
1886 ppHRegPPC(i->Pin.AvBin32Fx4.srcL);
1888 ppHRegPPC(i->Pin.AvBin32Fx4.srcR);
1891 vex_printf("%s ", showPPCAvFpOp(i->Pin.AvUn32Fx4.op));
1892 ppHRegPPC(i->Pin.AvUn32Fx4.dst);
1894 ppHRegPPC(i->Pin.AvUn32Fx4.src);
1898 ppHRegPPC(i->Pin.AvPerm.dst);
1900 ppHRegPPC(i->Pin.AvPerm.srcL);
1902 ppHRegPPC(i->Pin.AvPerm.srcR);
1904 ppHRegPPC(i->Pin.AvPerm.ctl);
1909 ppHRegPPC(i->Pin.AvSel.dst);
1911 ppHRegPPC(i->Pin.AvSel.srcL);
1913 ppHRegPPC(i->Pin.AvSel.srcR);
1915 ppHRegPPC(i->Pin.AvSel.ctl);
1920 ppHRegPPC(i->Pin.AvShlDbl.dst);
1922 ppHRegPPC(i->Pin.AvShlDbl.srcL);
1924 Pin.AvShlDbl.srcR);
1925 vex_printf(",%d", i->Pin.AvShlDbl.shift);
1929 UChar sz = i->Pin.AvSplat.sz;
1932 i->Pin.AvSplat.src->tag == Pvi_Imm ? "is" : "", ch_sz);
1933 ppHRegPPC(i->Pin.AvSplat.dst);
1935 ppPPCVI5s(i->Pin.AvSplat.src);
1936 if (i->Pin.AvSplat.src->tag == Pvi_Reg)
1942 vex_printf("avcmov (%s) ", showPPCCondCode(i->Pin.AvCMov.cond));
1943 ppHRegPPC(i->Pin.AvCMov.dst);
1945 ppHRegPPC(i->Pin.AvCMov.src);
1948 if (i->Pin.AvCMov.cond.test != Pct_ALWAYS) {
1949 vex_printf("if (%s) { ", showPPCCondCode(i->Pin.AvCMov.cond));
1952 ppHRegPPC(i->Pin.AvCMov.dst);
1954 ppHRegPPC(i->Pin.AvCMov.src);
1955 if (i->Pin.FpCMov.cond.test != Pct_ALWAYS)
1962 ppHRegPPC(i->Pin.AvLdVSCR.src);
1966 vex_printf("%s ", showPPCFpOp(i->Pin.Dfp64Unary.op));
1967 ppHRegPPC(i->Pin.Dfp64Unary.dst);
1969 ppHRegPPC(i->Pin.Dfp64Unary.src);
1973 vex_printf("%s ", showPPCFpOp(i->Pin.Dfp64Binary.op));
1974 ppHRegPPC(i->Pin.Dfp64Binary.dst);
1976 ppHRegPPC(i->Pin.Dfp64Binary.srcL);
1978 ppHRegPPC(i->Pin.Dfp64Binary.srcR);
1982 vex_printf("%s ", showPPCFpOp(i->Pin.DfpShift.op));
1983 ppHRegPPC(i->Pin.DfpShift.dst);
1985 ppHRegPPC(i->Pin.DfpShift.src);
1987 ppPPCRI(i->Pin.DfpShift.shift);
1991 vex_printf("%s ", showPPCFpOp(i->Pin.Dfp128Unary.op));
1992 ppHRegPPC(i->Pin.Dfp128Unary.dst_hi);
1994 ppHRegPPC(i->Pin.Dfp128Unary.src_hi);
1998 vex_printf("%s ", showPPCFpOp(i->Pin.Dfp128Binary.op));
1999 ppHRegPPC(i->Pin.Dfp128Binary.dst_hi);
2001 ppHRegPPC(i->Pin.Dfp128Binary.srcR_hi);
2005 vex_printf("%s ", showPPCFpOp(i->Pin.DfpShift128.op));
2006 ppHRegPPC(i->Pin.DfpShift128.dst_hi);
2008 ppHRegPPC(i->Pin.DfpShift128.src_hi);
2010 ppPPCRI(i->Pin.DfpShift128.shift);
2015 ppHRegPPC(i->Pin.DfpRound.dst);
2017 ppHRegPPC(i->Pin.DfpRound.src);
2019 ppPPCRI(i->Pin.DfpRound.r_rmc); /* R in bit 3 and RMC in bits 2:0 */
2024 ppHRegPPC(i->Pin.DfpRound128.dst_hi);
2026 ppHRegPPC(i->Pin.DfpRound128.src_hi);
2028 ppPPCRI(i->Pin.DfpRound128.r_rmc); /* R in bit 3 and RMC in bits 2:0 */
2032 vex_printf("%s ", showPPCFpOp(i->Pin.DfpQuantize.op));
2033 ppHRegPPC(i->Pin.DfpQuantize.dst);
2035 ppHRegPPC(i->Pin.DfpQuantize.srcL);
2037 ppHRegPPC(i->Pin.DfpQuantize.srcR);
2039 ppPPCRI(i->Pin.DfpQuantize.rmc);
2045 ppHRegPPC(i->Pin.DfpQuantize128.dst_hi);
2047 ppHRegPPC(i->Pin.DfpQuantize128.dst_hi);
2049 ppHRegPPC(i->Pin.DfpQuantize128.src_hi);
2051 ppPPCRI(i->Pin.DfpQuantize128.rmc);
2055 vex_printf("%s ", showPPCFpOp(i->Pin.DfpD128toD64.op));
2056 ppHRegPPC(i->Pin.DfpD128toD64.dst);
2058 ppHRegPPC(i->Pin.DfpD128toD64.src_hi);
2063 vex_printf("%s ", showPPCFpOp(i->Pin.DfpI64StoD128.op));
2064 ppHRegPPC(i->Pin.DfpI64StoD128.dst_hi);
2066 ppHRegPPC(i->Pin.DfpI64StoD128.src);
2071 ppHRegPPC(i->Pin.ExtractExpD128.dst);
2073 ppHRegPPC(i->Pin.ExtractExpD128.src_hi);
2077 ppHRegPPC(i->Pin.InsertExpD128.dst_hi);
2079 ppHRegPPC(i->Pin.InsertExpD128.srcL);
2081 ppHRegPPC(i->Pin.InsertExpD128.srcR_hi);
2085 ppHRegPPC(i->Pin.Dfp64Cmp.srcL);
2087 ppHRegPPC(i->Pin.Dfp64Cmp.srcR);
2089 ppHRegPPC(i->Pin.Dfp64Cmp.dst);
2091 ppHRegPPC(i->Pin.Dfp64Cmp.dst);
2093 ppHRegPPC(i->Pin.Dfp64Cmp.dst);
2098 ppHRegPPC(i->Pin.Dfp128Cmp.srcL_hi);
2100 ppHRegPPC(i->Pin.Dfp128Cmp.srcR_hi);
2102 ppHRegPPC(i->Pin.Dfp128Cmp.dst);
2104 ppHRegPPC(i->Pin.Dfp128Cmp.dst);
2106 ppHRegPPC(i->Pin.Dfp128Cmp.dst);
2113 ppPPCAMode(i->Pin.EvCheck.amCounter);
2116 ppPPCAMode(i->Pin.EvCheck.amCounter);
2118 ppPPCAMode(i->Pin.EvCheck.amFailAddr);
2144 addHRegUse(u, HRmWrite, i->Pin.LI.dst);
2147 addHRegUse(u, HRmRead, i->Pin.Alu.srcL);
2148 addRegUsage_PPCRH(u, i->Pin.Alu.srcR);
2149 addHRegUse(u, HRmWrite, i->Pin.Alu.dst);
2152 addHRegUse(u, HRmRead, i->Pin.Shft.srcL);
2153 addRegUsage_PPCRH(u, i->Pin.Shft.srcR);
2154 addHRegUse(u, HRmWrite, i->Pin.Shft.dst);
2157 addHRegUse(u, HRmWrite, i->Pin.AddSubC.dst);
2158 addHRegUse(u, HRmRead, i->Pin.AddSubC.srcL);
2159 addHRegUse(u, HRmRead, i->Pin.AddSubC.srcR);
2162 addHRegUse(u, HRmRead, i->Pin.Cmp.srcL);
2163 addRegUsage_PPCRH(u, i->Pin.Cmp.srcR);
2166 addHRegUse(u, HRmWrite, i->Pin.Unary.dst);
2167 addHRegUse(u, HRmRead, i->Pin.Unary.src);
2170 addHRegUse(u, HRmWrite, i->Pin.MulL.dst);
2171 addHRegUse(u, HRmRead, i->Pin.MulL.srcL);
2172 addHRegUse(u, HRmRead, i->Pin.MulL.srcR);
2175 addHRegUse(u, HRmWrite, i->Pin.Div.dst);
2176 addHRegUse(u, HRmRead, i->Pin.Div.srcL);
2177 addHRegUse(u, HRmRead, i->Pin.Div.srcR);
2207 argir = i->Pin.Call.argiregs;
2235 addRegUsage_PPCAMode(u, i->Pin.XDirect.amCIA);
2238 addHRegUse(u, HRmRead, i->Pin.XIndir.dstGA);
2239 addRegUsage_PPCAMode(u, i->Pin.XIndir.amCIA);
2242 addHRegUse(u, HRmRead, i->Pin.XAssisted.dstGA);
2243 addRegUsage_PPCAMode(u, i->Pin.XAssisted.amCIA);
2246 addRegUsage_PPCRI(u, i->Pin.CMov.src);
2247 addHRegUse(u, HRmWrite, i->Pin.CMov.dst);
2250 addRegUsage_PPCAMode(u, i->Pin.Load.src);
2251 addHRegUse(u, HRmWrite, i->Pin.Load.dst);
2254 addHRegUse(u, HRmRead, i->Pin.LoadL.src);
2255 addHRegUse(u, HRmWrite, i->Pin.LoadL.dst);
2258 addHRegUse(u, HRmRead, i->Pin.Store.src);
2259 addRegUsage_PPCAMode(u, i->Pin.Store.dst);
2262 addHRegUse(u, HRmRead, i->Pin.StoreC.src);
2263 addHRegUse(u, HRmRead, i->Pin.StoreC.dst);
2266 addHRegUse(u, HRmWrite, i->Pin.Set.dst);
2269 addHRegUse(u, HRmWrite, i->Pin.MfCR.dst);
2275 addHRegUse(u, HRmWrite, i->Pin.FpUnary.dst);
2276 addHRegUse(u, HRmRead, i->Pin.FpUnary.src);
2279 addHRegUse(u, HRmWrite, i->Pin.FpBinary.dst);
2280 addHRegUse(u, HRmRead, i->Pin.FpBinary.srcL);
2281 addHRegUse(u, HRmRead, i->Pin.FpBinary.srcR);
2284 addHRegUse(u, HRmWrite, i->Pin.FpMulAcc.dst);
2285 addHRegUse(u, HRmRead, i->Pin.FpMulAcc.srcML);
2286 addHRegUse(u, HRmRead, i->Pin.FpMulAcc.srcMR);
2287 addHRegUse(u, HRmRead, i->Pin.FpMulAcc.srcAcc);
2290 addHRegUse(u, (i->Pin.FpLdSt.isLoad ? HRmWrite : HRmRead),
2291 i->Pin.FpLdSt.reg);
2292 addRegUsage_PPCAMode(u, i->Pin.FpLdSt.addr);
2295 addHRegUse(u, HRmRead, i->Pin.FpSTFIW.addr);
2296 addHRegUse(u, HRmRead, i->Pin.FpSTFIW.data);
2299 addHRegUse(u, HRmWrite, i->Pin.FpRSP.dst);
2300 addHRegUse(u, HRmRead, i->Pin.FpRSP.src);
2303 addHRegUse(u, HRmWrite, i->Pin.FpCftI.dst);
2304 addHRegUse(u, HRmRead, i->Pin.FpCftI.src);
2307 addHRegUse(u, HRmModify, i->Pin.FpCMov.dst);
2308 addHRegUse(u, HRmRead, i->Pin.FpCMov.src);
2311 addHRegUse(u, HRmRead, i->Pin.FpLdFPSCR.src);
2314 addHRegUse(u, HRmWrite, i->Pin.FpCmp.dst);
2315 addHRegUse(u, HRmRead, i->Pin.FpCmp.srcL);
2316 addHRegUse(u, HRmRead, i->Pin.FpCmp.srcR);
2320 addHRegUse(u, (i->Pin.RdWrLR.wrLR ? HRmRead : HRmWrite),
2321 i->Pin.RdWrLR.gpr);
2325 addHRegUse(u, (i->Pin.AvLdSt.isLoad ? HRmWrite : HRmRead),
2326 i->Pin.AvLdSt.reg);
2327 if (i->Pin.AvLdSt.addr->tag == Pam_IR)
2329 addRegUsage_PPCAMode(u, i->Pin.AvLdSt.addr);
2332 addHRegUse(u, HRmWrite, i->Pin.AvUnary.dst);
2333 addHRegUse(u, HRmRead, i->Pin.AvUnary.src);
2336 if (i->Pin.AvBinary.op == Pav_XOR
2337 && i->Pin.AvBinary.dst == i->Pin.AvBinary.srcL
2338 && i->Pin.AvBinary.dst == i->Pin.AvBinary.srcR) {
2341 addHRegUse(u, HRmWrite, i->Pin.AvBinary.dst);
2343 addHRegUse(u, HRmWrite, i->Pin.AvBinary.dst);
2344 addHRegUse(u, HRmRead, i->Pin.AvBinary.srcL);
2345 addHRegUse(u, HRmRead, i->Pin.AvBinary.srcR);
2349 addHRegUse(u, HRmWrite, i->Pin.AvBin8x16.dst);
2350 addHRegUse(u, HRmRead, i->Pin.AvBin8x16.srcL);
2351 addHRegUse(u, HRmRead, i->Pin.AvBin8x16.srcR);
2354 addHRegUse(u, HRmWrite, i->Pin.AvBin16x8.dst);
2355 addHRegUse(u, HRmRead, i->Pin.AvBin16x8.srcL);
2356 addHRegUse(u, HRmRead, i->Pin.AvBin16x8.srcR);
2359 addHRegUse(u, HRmWrite, i->Pin.AvBin32x4.dst);
2360 addHRegUse(u, HRmRead, i->Pin.AvBin32x4.srcL);
2361 addHRegUse(u, HRmRead, i->Pin.AvBin32x4.srcR);
2364 addHRegUse(u, HRmWrite, i->Pin.AvBin32Fx4.dst);
2365 addHRegUse(u, HRmRead, i->Pin.AvBin32Fx4.srcL);
2366 addHRegUse(u, HRmRead, i->Pin.AvBin32Fx4.srcR);
2367 if (i->Pin.AvBin32Fx4.op == Pavfp_MULF)
2371 addHRegUse(u, HRmWrite, i->Pin.AvUn32Fx4.dst);
2372 addHRegUse(u, HRmRead, i->Pin.AvUn32Fx4.src);
2375 addHRegUse(u, HRmWrite, i->Pin.AvPerm.dst);
2376 addHRegUse(u, HRmRead, i->Pin.AvPerm.srcL);
2377 addHRegUse(u, HRmRead, i->Pin.AvPerm.srcR);
2378 addHRegUse(u, HRmRead, i->Pin.AvPerm.ctl);
2381 addHRegUse(u, HRmWrite, i->Pin.AvSel.dst);
2382 addHRegUse(u, HRmRead, i->Pin.AvSel.ctl);
2383 addHRegUse(u, HRmRead, i->Pin.AvSel.srcL);
2384 addHRegUse(u, HRmRead, i->Pin.AvSel.srcR);
2387 addHRegUse(u, HRmWrite, i->Pin.AvShlDbl.dst);
2388 Pin.AvShlDbl.srcL);
2389 addHRegUse(u, HRmRead, i->Pin.AvShlDbl.srcR);
2392 addHRegUse(u, HRmWrite, i->Pin.AvSplat.dst);
2393 addRegUsage_PPCVI5s(u, i->Pin.AvSplat.src);
2396 addHRegUse(u, HRmModify, i->Pin.AvCMov.dst);
2397 addHRegUse(u, HRmRead, i->Pin.AvCMov.src);
2400 addHRegUse(u, HRmRead, i->Pin.AvLdVSCR.src);
2403 addHRegUse(u, HRmWrite, i->Pin.Dfp64Unary.dst);
2404 addHRegUse(u, HRmRead, i->Pin.Dfp64Unary.src);
2407 addHRegUse(u, HRmWrite, i->Pin.Dfp64Binary.dst);
2408 addHRegUse(u, HRmRead, i->Pin.Dfp64Binary.srcL);
2409 addHRegUse(u, HRmRead, i->Pin.Dfp64Binary.srcR);
2412 addRegUsage_PPCRI(u, i->Pin.DfpShift.shift);
2413 addHRegUse(u, HRmWrite, i->Pin.DfpShift.src);
2414 addHRegUse(u, HRmWrite, i->Pin.DfpShift.dst);
2417 addHRegUse(u, HRmWrite, i->Pin.Dfp128Unary.dst_hi);
2418 addHRegUse(u, HRmWrite, i->Pin.Dfp128Unary.dst_lo);
2419 addHRegUse(u, HRmRead, i->Pin.Dfp128Unary.src_hi);
2420 addHRegUse(u, HRmRead, i->Pin.Dfp128Unary.src_lo);
2423 addHRegUse(u, HRmWrite, i->Pin.Dfp128Binary.dst_hi);
2424 addHRegUse(u, HRmWrite, i->Pin.Dfp128Binary.dst_lo);
2425 addHRegUse(u, HRmRead, i->Pin.Dfp128Binary.srcR_hi);
2426 addHRegUse(u, HRmRead, i->Pin.Dfp128Binary.srcR_lo);
2429 addHRegUse(u, HRmWrite, i->Pin.DfpRound.dst);
2430 addHRegUse(u, HRmRead, i->Pin.DfpRound.src);
2433 addHRegUse(u, HRmWrite, i->Pin.DfpRound128.dst_hi);
2434 addHRegUse(u, HRmWrite, i->Pin.DfpRound128.dst_lo);
2435 addHRegUse(u, HRmRead, i->Pin.DfpRound128.src_hi);
2436 addHRegUse(u, HRmRead, i->Pin.DfpRound128.src_lo);
2439 addRegUsage_PPCRI(u, i->Pin.DfpQuantize.rmc);
2440 addHRegUse(u, HRmWrite, i->Pin.DfpQuantize.dst);
2441 addHRegUse(u, HRmRead, i->Pin.DfpQuantize.srcL);
2442 addHRegUse(u, HRmRead, i->Pin.DfpQuantize.srcR);
2445 addHRegUse(u, HRmWrite, i->Pin.DfpQuantize128.dst_hi);
2446 addHRegUse(u, HRmWrite, i->Pin.DfpQuantize128.dst_lo);
2447 addHRegUse(u, HRmRead, i->Pin.DfpQuantize128.src_hi);
2448 addHRegUse(u, HRmRead, i->Pin.DfpQuantize128.src_lo);
2451 addRegUsage_PPCRI(u, i->Pin.DfpShift128.shift);
2452 addHRegUse(u, HRmWrite, i->Pin.DfpShift128.src_hi);
2453 addHRegUse(u, HRmWrite, i->Pin.DfpShift128.src_lo);
2454 addHRegUse(u, HRmWrite, i->Pin.DfpShift128.dst_hi);
2455 addHRegUse(u, HRmWrite, i->Pin.DfpShift128.dst_lo);
2458 addHRegUse(u, HRmWrite, i->Pin.DfpD128toD64.src_hi);
2459 addHRegUse(u, HRmWrite, i->Pin.DfpD128toD64.src_lo);
2460 addHRegUse(u, HRmWrite, i->Pin.DfpD128toD64.dst);
2463 addHRegUse(u, HRmWrite, i->Pin.DfpI64StoD128.src);
2464 addHRegUse(u, HRmWrite, i->Pin.DfpI64StoD128.dst_hi);
2465 addHRegUse(u, HRmWrite, i->Pin.DfpI64StoD128.dst_lo);
2468 addHRegUse(u, HRmWrite, i->Pin.ExtractExpD128.dst);
2469 addHRegUse(u, HRmRead, i->Pin.ExtractExpD128.src_hi);
2470 addHRegUse(u, HRmRead, i->Pin.ExtractExpD128.src_lo);
2473 addHRegUse(u, HRmWrite, i->Pin.InsertExpD128.dst_hi);
2474 addHRegUse(u, HRmWrite, i->Pin.InsertExpD128.dst_lo);
2475 addHRegUse(u, HRmRead, i->Pin.InsertExpD128.srcL);
2476 addHRegUse(u, HRmRead, i->Pin.InsertExpD128.srcR_hi);
2477 addHRegUse(u, HRmRead, i->Pin.InsertExpD128.srcR_lo);
2480 addHRegUse(u, HRmWrite, i->Pin.Dfp64Cmp.dst);
2481 addHRegUse(u, HRmRead, i->Pin.Dfp64Cmp.srcL);
2482 addHRegUse(u, HRmRead, i->Pin.Dfp64Cmp.srcR);
2485 addHRegUse(u, HRmWrite, i->Pin.Dfp128Cmp.dst);
2486 addHRegUse(u, HRmRead, i->Pin.Dfp128Cmp.srcL_hi);
2487 addHRegUse(u, HRmRead, i->Pin.Dfp128Cmp.srcL_lo);
2488 addHRegUse(u, HRmRead, i->Pin.Dfp128Cmp.srcR_hi);
2489 addHRegUse(u, HRmRead, i->Pin.Dfp128Cmp.srcR_lo);
2495 addRegUsage_PPCAMode(u, i->Pin.EvCheck.amCounter);
2496 addRegUsage_PPCAMode(u, i->Pin.EvCheck.amFailAddr);
2519 mapReg(m, &i->Pin.LI.dst);
2522 mapReg(m, &i->Pin.Alu.dst);
2523 mapReg(m, &i->Pin.Alu.srcL);
2524 mapRegs_PPCRH(m, i->Pin.Alu.srcR);
2527 mapReg(m, &i->Pin.Shft.dst);
2528 mapReg(m, &i->Pin.Shft.srcL);
2529 mapRegs_PPCRH(m, i->Pin.Shft.srcR);
2532 mapReg(m, &i->Pin.AddSubC.dst);
2533 mapReg(m, &i->Pin.AddSubC.srcL);
2534 mapReg(m, &i->Pin.AddSubC.srcR);
2537 mapReg(m, &i->Pin.Cmp.srcL);
2538 mapRegs_PPCRH(m, i->Pin.Cmp.srcR);
2541 mapReg(m, &i->Pin.Unary.dst);
2542 mapReg(m, &i->Pin.Unary.src);
2545 mapReg(m, &i->Pin.MulL.dst);
2546 mapReg(m, &i->Pin.MulL.srcL);
2547 mapReg(m, &i->Pin.MulL.srcR);
2550 mapReg(m, &i->Pin.Div.dst);
2551 mapReg(m, &i->Pin.Div.srcL);
2552 mapReg(m, &i->Pin.Div.srcR);
2557 mapRegs_PPCAMode(m, i->Pin.XDirect.amCIA);
2560 mapReg(m, &i->Pin.XIndir.dstGA);
2561 mapRegs_PPCAMode(m, i->Pin.XIndir.amCIA);
2564 mapReg(m, &i->Pin.XAssisted.dstGA);
2565 mapRegs_PPCAMode(m, i->Pin.XAssisted.amCIA);
2568 mapRegs_PPCRI(m, i->Pin.CMov.src);
2569 mapReg(m, &i->Pin.CMov.dst);
2572 mapRegs_PPCAMode(m, i->Pin.Load.src);
2573 mapReg(m, &i->Pin.Load.dst);
2576 mapReg(m, &i->Pin.LoadL.src);
2577 mapReg(m, &i->Pin.LoadL.dst);
2580 mapReg(m, &i->Pin.Store.src);
2581 mapRegs_PPCAMode(m, i->Pin.Store.dst);
2584 mapReg(m, &i->Pin.StoreC.src);
2585 mapReg(m, &i->Pin.StoreC.dst);
2588 mapReg(m, &i->Pin.Set.dst);
2591 mapReg(m, &i->Pin.MfCR.dst);
2596 mapReg(m, &i->Pin.FpUnary.dst);
2597 mapReg(m, &i->Pin.FpUnary.src);
2600 mapReg(m, &i->Pin.FpBinary.dst);
2601 mapReg(m, &i->Pin.FpBinary.srcL);
2602 mapReg(m, &i->Pin.FpBinary.srcR);
2605 mapReg(m, &i->Pin.FpMulAcc.dst);
2606 mapReg(m, &i->Pin.FpMulAcc.srcML);
2607 mapReg(m, &i->Pin.FpMulAcc.srcMR);
2608 mapReg(m, &i->Pin.FpMulAcc.srcAcc);
2611 mapReg(m, &i->Pin.FpLdSt.reg);
2612 mapRegs_PPCAMode(m, i->Pin.FpLdSt.addr);
2615 mapReg(m, &i->Pin.FpSTFIW.addr);
2616 mapReg(m, &i->Pin.FpSTFIW.data);
2619 mapReg(m, &i->Pin.FpRSP.dst);
2620 mapReg(m, &i->Pin.FpRSP.src);
2623 mapReg(m, &i->Pin.FpCftI.dst);
2624 mapReg(m, &i->Pin.FpCftI.src);
2627 mapReg(m, &i->Pin.FpCMov.dst);
2628 mapReg(m, &i->Pin.FpCMov.src);
2631 mapReg(m, &i->Pin.FpLdFPSCR.src);
2634 mapReg(m, &i->Pin.FpCmp.dst);
2635 mapReg(m, &i->Pin.FpCmp.srcL);
2636 mapReg(m, &i->Pin.FpCmp.srcR);
2639 mapReg(m, &i->Pin.RdWrLR.gpr);
2642 mapReg(m, &i->Pin.AvLdSt.reg);
2643 mapRegs_PPCAMode(m, i->Pin.AvLdSt.addr);
2646 mapReg(m, &i->Pin.AvUnary.dst);
2647 mapReg(m, &i->Pin.AvUnary.src);
2650 mapReg(m, &i->Pin.AvBinary.dst);
2651 mapReg(m, &i->Pin.AvBinary.srcL);
2652 mapReg(m, &i->Pin.AvBinary.srcR);
2655 mapReg(m, &i->Pin.AvBin8x16.dst);
2656 mapReg(m, &i->Pin.AvBin8x16.srcL);
2657 mapReg(m, &i->Pin.AvBin8x16.srcR);
2660 mapReg(m, &i->Pin.AvBin16x8.dst);
2661 mapReg(m, &i->Pin.AvBin16x8.srcL);
2662 mapReg(m, &i->Pin.AvBin16x8.srcR);
2665 mapReg(m, &i->Pin.AvBin32x4.dst);
2666 mapReg(m, &i->Pin.AvBin32x4.srcL);
2667 mapReg(m, &i->Pin.AvBin32x4.srcR);
2670 mapReg(m, &i->Pin.AvBin32Fx4.dst);
2671 mapReg(m, &i->Pin.AvBin32Fx4.srcL);
2672 mapReg(m, &i->Pin.AvBin32Fx4.srcR);
2675 mapReg(m, &i->Pin.AvUn32Fx4.dst);
2676 mapReg(m, &i->Pin.AvUn32Fx4.src);
2679 mapReg(m, &i->Pin.AvPerm.dst);
2680 mapReg(m, &i->Pin.AvPerm.srcL);
2681 mapReg(m, &i->Pin.AvPerm.srcR);
2682 mapReg(m, &i->Pin.AvPerm.ctl);
2685 mapReg(m, &i->Pin.AvSel.dst);
2686 mapReg(m, &i->Pin.AvSel.srcL);
2687 mapReg(m, &i->Pin.AvSel.srcR);
2688 mapReg(m, &i->Pin.AvSel.ctl);
2691 mapReg(m, &i->Pin.AvShlDbl.dst);
2692 mapReg(m, &i->Pin.AvShlDbl.srcL);
2693 mapReg(m, &i->Pin.AvShlDbl.srcR);
2696 mapReg(m, &i->Pin.AvSplat.dst);
2697 mapRegs_PPCVI5s(m, i->Pin.AvSplat.src);
2700 mapReg(m, &i->Pin.AvCMov.dst);
2701 mapReg(m, &i->Pin.AvCMov.src);
2704 mapReg(m, &i->Pin.AvLdVSCR.src);
2707 mapReg(m, &i->Pin.Dfp64Unary.dst);
2708 mapReg(m, &i->Pin.Dfp64Unary.src);
2711 mapReg(m, &i->Pin.Dfp64Binary.dst);
2712 mapReg(m, &i->Pin.Dfp64Binary.srcL);
2713 mapReg(m, &i->Pin.Dfp64Binary.srcR);
2716 mapRegs_PPCRI(m, i->Pin.DfpShift.shift);
2717 mapReg(m, &i->Pin.DfpShift.src);
2718 mapReg(m, &i->Pin.DfpShift.dst);
2721 mapReg(m, &i->Pin.Dfp128Unary.dst_hi);
2722 mapReg(m, &i->Pin.Dfp128Unary.dst_lo);
2723 mapReg(m, &i->Pin.Dfp128Unary.src_hi);
2724 mapReg(m, &i->Pin.Dfp128Unary.src_lo);
2727 mapReg(m, &i->Pin.Dfp128Binary.dst_hi);
2728 mapReg(m, &i->Pin.Dfp128Binary.dst_lo);
2729 mapReg(m, &i->Pin.Dfp128Binary.srcR_hi);
2730 mapReg(m, &i->Pin.Dfp128Binary.srcR_lo);
2733 mapRegs_PPCRI(m, i->Pin.DfpShift128.shift);
2734 mapReg(m, &i->Pin.DfpShift128.src_hi);
2735 mapReg(m, &i->Pin.DfpShift128.src_lo);
2736 mapReg(m, &i->Pin.DfpShift128.dst_hi);
2737 mapReg(m, &i->Pin.DfpShift128.dst_lo);
2740 mapReg(m, &i->Pin.DfpRound.dst);
2741 mapReg(m, &i->Pin.DfpRound.src);
2744 mapReg(m, &i->Pin.DfpRound128.dst_hi);
2745 mapReg(m, &i->Pin.DfpRound128.dst_lo);
2746 mapReg(m, &i->Pin.DfpRound128.src_hi);
2747 mapReg(m, &i->Pin.DfpRound128.src_lo);
2750 mapRegs_PPCRI(m, i->Pin.DfpQuantize.rmc);
2751 mapReg(m, &i->Pin.DfpQuantize.dst);
2752 mapReg(m, &i->Pin.DfpQuantize.srcL);
2753 mapReg(m, &i->Pin.DfpQuantize.srcR);
2756 mapRegs_PPCRI(m, i->Pin.DfpQuantize128.rmc);
2757 mapReg(m, &i->Pin.DfpQuantize128.dst_hi);
2758 mapReg(m, &i->Pin.DfpQuantize128.dst_lo);
2759 mapReg(m, &i->Pin.DfpQuantize128.src_hi);
2760 mapReg(m, &i->Pin.DfpQuantize128.src_lo);
2763 mapReg(m, &i->Pin.DfpD128toD64.src_hi);
2764 mapReg(m, &i->Pin.DfpD128toD64.src_lo);
2765 mapReg(m, &i->Pin.DfpD128toD64.dst);
2768 mapReg(m, &i->Pin.DfpI64StoD128.src);
2769 mapReg(m, &i->Pin.DfpI64StoD128.dst_hi);
2770 mapReg(m, &i->Pin.DfpI64StoD128.dst_lo);
2773 mapReg(m, &i->Pin.ExtractExpD128.dst);
2774 mapReg(m, &i->Pin.ExtractExpD128.src_hi);
2775 mapReg(m, &i->Pin.ExtractExpD128.src_lo);
2778 mapReg(m, &i->Pin.InsertExpD128.dst_hi);
2779 mapReg(m, &i->Pin.InsertExpD128.dst_lo);
2780 mapReg(m, &i->Pin.InsertExpD128.srcL);
2781 mapReg(m, &i->Pin.InsertExpD128.srcR_hi);
2782 mapReg(m, &i->Pin.InsertExpD128.srcR_lo);
2785 mapReg(m, &i->Pin.Dfp64Cmp.dst);
2786 mapReg(m, &i->Pin.Dfp64Cmp.srcL);
2787 mapReg(m, &i->Pin.Dfp64Cmp.srcR);
2790 mapReg(m, &i->Pin.Dfp128Cmp.dst);
2791 mapReg(m, &i->Pin.Dfp128Cmp.srcL_hi);
2792 mapReg(m, &i->Pin.Dfp128Cmp.srcL_lo);
2793 mapReg(m, &i->Pin.Dfp128Cmp.srcR_hi);
2794 mapReg(m, &i->Pin.Dfp128Cmp.srcR_lo);
2800 mapRegs_PPCAMode(m, i->Pin.EvCheck.amCounter);
2801 mapRegs_PPCAMode(m, i->Pin.EvCheck.amFailAddr);
2821 if (i->Pin.Alu.op != Palu_OR)
2823 if (i->Pin.Alu.srcR->tag != Prh_Reg)
2825 if (i->Pin.Alu.srcR->Prh.Reg.reg != i->Pin.Alu.srcL)
2827 *src = i->Pin.Alu.srcL;
2828 *dst = i->Pin.Alu.dst;
2833 if (i->Pin.FpUnary.op != Pfp_MOV)
2835 *src = i->Pin.FpUnary.src;
2836 *dst = i->Pin.FpUnary.dst;
3560 p = mkLoadImm(p, iregNo(i->Pin.LI.dst, mode64),
3561 i->Pin.LI.imm64, mode64);
3565 PPCRH* srcR = i->Pin.Alu.srcR;
3567 UInt r_dst = iregNo(i->Pin.Alu.dst, mode64);
3568 UInt r_srcL = iregNo(i->Pin.Alu.srcL, mode64);
3572 switch (i->Pin.Alu.op) {
3637 PPCRH* srcR = i->Pin.Shft.srcR;
3638 Bool sz32 = i->Pin.Shft.sz32;
3640 UInt r_dst = iregNo(i->Pin.Shft.dst, mode64);
3641 UInt r_srcL = iregNo(i->Pin.Shft.srcL, mode64);
3647 switch (i->Pin.Shft.op) {
3751 Bool isAdd = i->Pin.AddSubC.isAdd;
3752 Bool setC = i->Pin.AddSubC.setC;
3753 UInt r_srcL = iregNo(i->Pin.AddSubC.srcL, mode64);
3754 UInt r_srcR = iregNo(i->Pin.AddSubC.srcR, mode64);
3755 UInt r_dst = iregNo(i->Pin.AddSubC.dst, mode64);
3773 Bool syned = i->Pin.Cmp.syned;
3774 Bool sz32 = i->Pin.Cmp.sz32;
3775 UInt fld1 = i->Pin.Cmp.crfD << 2;
3776 UInt r_srcL = iregNo(i->Pin.Cmp.srcL, mode64);
3778 PPCRH* srcR = i->Pin.Cmp.srcR;
3810 UInt r_dst = iregNo(i->Pin.Unary.dst, mode64);
3811 UInt r_src = iregNo(i->Pin.Unary.src, mode64);
3813 switch (i->Pin.Unary.op) {
3837 Bool syned = i->Pin.MulL.syned;
3838 Bool sz32 = i->Pin.MulL.sz32;
3839 UInt r_dst = iregNo(i->Pin.MulL.dst, mode64);
3840 UInt r_srcL = iregNo(i->Pin.MulL.srcL, mode64);
3841 UInt r_srcR = iregNo(i->Pin.MulL.srcR, mode64);
3846 if (i->Pin.MulL.hi) {
3861 vassert(!i->Pin.MulL.syned);
3871 Bool syned = i->Pin.Div.syned;
3872 Bool sz32 = i->Pin.Div.sz32;
3873 UInt r_dst = iregNo(i->Pin.Div.dst, mode64);
3874 UInt r_srcL = iregNo(i->Pin.Div.srcL, mode64);
3875 UInt r_srcR = iregNo(i->Pin.Div.srcR, mode64);
3880 if (i->Pin.Div.extended) {
3911 PPCCondCode cond = i->Pin.Call.cond;
3927 p = mkLoadImm(p, r_dst, i->Pin.Call.target, mode64);
3959 if (i->Pin.XDirect.cond.test != Pct_ALWAYS) {
3960 vassert(i->Pin.XDirect.cond.flag != Pcf_NONE);
3964 vassert(i->Pin.XDirect.cond.flag == Pcf_NONE);
3969 if (!mode64) vassert(0 == (((ULong)i->Pin.XDirect.dstGA) >> 32));
3970 p = mkLoadImm(p, /*r*/30, (ULong)i->Pin.XDirect.dstGA, mode64);
3974 /*r*/30, i->Pin.XDirect.amCIA, mode64
3984 = i->Pin.XDirect.toFastEP ? disp_cp_chain_me_to_fastEP
3995 if (i->Pin.XDirect.cond.test != Pct_ALWAYS) {
3999 mkFormB(ptmp, invertCondTest(i->Pin.XDirect.cond.test),
4000 i->Pin.XDirect.cond.flag, (delta>>2), 0, 0);
4018 if (i->Pin.XIndir.cond.test != Pct_ALWAYS) {
4019 vassert(i->Pin.XIndir.cond.flag != Pcf_NONE);
4023 vassert(i->Pin.XIndir.cond.flag == Pcf_NONE);
4030 iregNo(i->Pin.XIndir.dstGA, mode64),
4031 i->Pin.XIndir.amCIA, mode64
4042 if (i->Pin.XIndir.cond.test != Pct_ALWAYS) {
4046 mkFormB(ptmp, invertCondTest(i->Pin.XIndir.cond.test),
4047 i->Pin.XIndir.cond.flag, (delta>>2), 0, 0);
4057 if (i->Pin.XAssisted.cond.test != Pct_ALWAYS) {
4058 vassert(i->Pin.XAssisted.cond.flag != Pcf_NONE);
4062 vassert(i->Pin.XAssisted.cond.flag == Pcf_NONE);
4069 iregNo(i->Pin.XIndir.dstGA, mode64),
4070 i->Pin.XIndir.amCIA, mode64
4075 switch (i->Pin.XAssisted.jk) {
4095 ppIRJumpKind(i->Pin.XAssisted.jk);
4110 if (i->Pin.XAssisted.cond.test != Pct_ALWAYS) {
4114 mkFormB(ptmp, invertCondTest(i->Pin.XAssisted.cond.test),
4115 i->Pin.XAssisted.cond.flag, (delta>>2), 0, 0);
4124 vassert(i->Pin.CMov.cond.test != Pct_ALWAYS);
4126 r_dst = iregNo(i->Pin.CMov.dst, mode64);
4127 cond = i->Pin.CMov.cond;
4139 switch (i->Pin.CMov.src->tag) {
4141 imm_src = i->Pin.CMov.src->Pri.Imm;
4145 r_src = iregNo(i->Pin.CMov.src->Pri.Reg, mode64);
4163 PPCAMode* am_addr = i->Pin.Load.src;
4164 UInt r_dst = iregNo(i->Pin.Load.dst, mode64);
4165 UInt opc1, opc2, sz = i->Pin.Load.sz;
4197 if (i->Pin.LoadL.sz == 4) {
4198 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64),
4199 0, iregNo(i->Pin.LoadL.src, mode64), 20, 0);
4202 if (i->Pin.LoadL.sz == 8 && mode64) {
4203 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64),
4204 0, iregNo(i->Pin.LoadL.src, mode64), 84, 0);
4213 UInt r_dst = iregNo(i->Pin.Set.dst, mode64);
4214 PPCCondCode cond = i->Pin.Set.cond;
4242 p = mkFormX(p, 31, iregNo(i->Pin.MfCR.dst, mode64), 0, 0, 19, 0);
4253 PPCAMode* am_addr = i->Pin.Store.dst;
4254 UInt r_src = iregNo(i->Pin.Store.src, mode64);
4255 UInt opc1, opc2, sz = i->Pin.Store.sz;
4256 switch (i->Pin.Store.dst->tag) {
4292 if (i->Pin.StoreC.sz == 4) {
4293 p = mkFormX(p, 31, iregNo(i->Pin.StoreC.src, mode64),
4294 0, iregNo(i->Pin.StoreC.dst, mode64), 150, 1);
4297 if (i->Pin.StoreC.sz == 8 && mode64) {
4298 p = mkFormX(p, 31, iregNo(i->Pin.StoreC.src, mode64),
4299 0, iregNo(i->Pin.StoreC.dst, mode64), 214, 1);
4306 UInt fr_dst = fregNo(i->Pin.FpUnary.dst);
4307 UInt fr_src = fregNo(i->Pin.FpUnary.src);
4308 switch (i->Pin.FpUnary.op) {
4346 UInt fr_dst = fregNo(i->Pin.FpBinary.dst);
4347 UInt fr_srcL = fregNo(i->Pin.FpBinary.srcL);
4348 UInt fr_srcR = fregNo(i->Pin.FpBinary.srcR);
4349 switch (i->Pin.FpBinary.op) {
4381 UInt fr_dst = fregNo(i->Pin.FpMulAcc.dst);
4382 UInt fr_srcML = fregNo(i->Pin.FpMulAcc.srcML);
4383 UInt fr_srcMR = fregNo(i->Pin.FpMulAcc.srcMR);
4384 UInt fr_srcAcc = fregNo(i->Pin.FpMulAcc.srcAcc);
4385 switch (i->Pin.FpMulAcc.op) {
4405 PPCAMode* am_addr = i->Pin.FpLdSt.addr;
4406 UInt f_reg = fregNo(i->Pin.FpLdSt.reg);
4407 Bool idxd = toBool(i->Pin.FpLdSt.addr->tag == Pam_RR);
4408 UChar sz = i->Pin
4412 if (i->Pin.FpLdSt.isLoad) { // Load from memory
4433 UInt ir_addr = iregNo(i->Pin.FpSTFIW.addr, mode64);
4434 UInt fr_data = fregNo(i->Pin.FpSTFIW.data);
4442 UInt fr_dst = fregNo(i->Pin.FpRSP.dst);
4443 UInt fr_src = fregNo(i->Pin.FpRSP.src);
4450 UInt fr_dst = fregNo(i->Pin.FpCftI.dst);
4451 UInt fr_src = fregNo(i->Pin.FpCftI.src);
4452 if (i->Pin.FpCftI.fromI == False && i->Pin.FpCftI.int32 == True) {
4453 if (i->Pin.FpCftI.syned == True) {
4463 if (i->Pin.FpCftI.fromI == False && i->Pin.FpCftI.int32 == False) {
4464 if (i->Pin.FpCftI.syned == True) {
4474 if (i->Pin.FpCftI.fromI == True && i->Pin.FpCftI.int32 == False) {
4475 if (i->Pin.FpCftI.syned == True) {
4479 } else if (i->Pin.FpCftI.flt64 == True) {
4493 UInt fr_dst = fregNo(i->Pin.FpCMov.dst);
4494 UInt fr_src = fregNo(i->Pin.FpCMov.src);
4495 PPCCondCode cc = i->Pin.FpCMov.cond;
4513 UInt fr_src = fregNo(i->Pin.FpLdFPSCR.src);
4514 p = mkFormXFL(p, 0xFF, fr_src, i->Pin.FpLdFPSCR.dfp_rm); // mtfsf, PPC32 p480
4520 UInt r_dst = iregNo(i->Pin.FpCmp.dst, mode64);
4521 UInt fr_srcL = fregNo(i->Pin.FpCmp.srcL);
4522 UInt fr_srcR = fregNo(i->Pin.FpCmp.srcR);
4537 UInt reg = iregNo(i->Pin.RdWrLR.gpr, mode64);
4539 p = mkFormXFX(p, reg, 8, (i->Pin.RdWrLR.wrLR==True) ? 467 : 339);
4547 UChar sz = i->Pin.AvLdSt.sz;
4548 Bool idxd = toBool(i->Pin.AvLdSt.addr->tag == Pam_RR);
4551 v_reg = vregNo(i->Pin.AvLdSt.reg);
4552 r_base = iregNo(i->Pin.AvLdSt.addr->Pam.RR.base, mode64);
4558 i->Pin.AvLdSt.addr->Pam.IR.index, mode64);
4560 r_idx = iregNo(i->Pin.AvLdSt.addr->Pam.RR.index, mode64);
4563 if (i->Pin.FpLdSt.isLoad) { // Load from memory (1,2,4,16)
4574 UInt v_dst = vregNo(i->Pin.AvUnary.dst);
4575 UInt v_src = vregNo(i->Pin.AvUnary.src);
4577 switch (i->Pin.AvUnary.op) {
4589 switch (i->Pin.AvUnary.op) {
4602 UInt v_dst = vregNo(i->Pin.AvBinary.dst);
4603 UInt v_srcL = vregNo(i->Pin.AvBinary.srcL);
4604 UInt v_srcR = vregNo(i->Pin.AvBinary.srcR);
4606 if (i->Pin.AvBinary.op == Pav_SHL) {
4611 if (i->Pin.AvBinary.op == Pav_SHR) {
4616 switch (i->Pin.AvBinary.op) {
4629 UInt v_dst = vregNo(i->Pin.AvBin8x16.dst);
4630 UInt v_srcL = vregNo(i->Pin.AvBin8x16.srcL);
4631 UInt v_srcR = vregNo(i->Pin.AvBin8x16.srcR);
4633 switch (i->Pin.AvBin8x16.op) {
4675 UInt v_dst = vregNo(i->Pin.AvBin16x8.dst);
4676 UInt v_srcL = vregNo(i->Pin.AvBin16x8.srcL);
4677 UInt v_srcR = vregNo(i->Pin.AvBin16x8.srcR);
4679 switch (i->Pin.AvBin16x8.op) {
4727 UInt v_dst = vregNo(i->Pin.AvBin32x4.dst);
4728 UInt v_srcL = vregNo(i->Pin.AvBin32x4.srcL);
4729 UInt v_srcR = vregNo(i->Pin.AvBin32x4.srcR);
4731 switch (i->Pin.AvBin32x4.op) {
4775 UInt v_dst = vregNo(i->Pin.AvBin32Fx4.dst);
4776 UInt v_srcL = vregNo(i->Pin.AvBin32Fx4.srcL);
4777 UInt v_srcR = vregNo(i->Pin.AvBin32Fx4.srcR);
4778 switch (i->Pin.AvBin32Fx4.op) {
4831 UInt v_dst = vregNo(i->Pin.AvUn32Fx4.dst);
4832 UInt v_src = vregNo(i->Pin.AvUn32Fx4.src);
4834 switch (i->Pin.AvUn32Fx4.op) {
4853 UInt v_dst = vregNo(i->Pin.AvPerm.dst);
4854 UInt v_srcL = vregNo(i->Pin.AvPerm.srcL);
4855 UInt v_srcR = vregNo(i->Pin.AvPerm.srcR);
4856 UInt v_ctl = vregNo(i->Pin.AvPerm.ctl);
4862 UInt v_ctl = vregNo(i->Pin.AvSel.ctl);
4863 UInt v_dst = vregNo(i->Pin.AvSel.dst);
4864 UInt v_srcL = vregNo(i->Pin.AvSel.srcL);
4865 UInt v_srcR = vregNo(i->Pin.AvSel.srcR);
4871 UInt shift = i->Pin.AvShlDbl.shift;
4872 UInt v_dst = vregNo(i->Pin.AvShlDbl.dst);
4873 UInt v_srcL = vregNo(i->Pin.AvShlDbl.srcL);
4874 Pin.AvShlDbl.srcR);
4881 UInt v_dst = vregNo(i->Pin.AvShlDbl.dst);
4882 UChar sz = i->Pin.AvSplat.sz;
4886 if (i->Pin.AvSplat.src->tag == Pvi_Imm) {
4890 simm5 = i->Pin.AvSplat.src->Pvi.Imm5s;
4898 vassert(hregClass(i->Pin.AvSplat.src->Pvi.Reg) == HRcVec128);
4899 v_src = vregNo(i->Pin.AvSplat.src->Pvi.Reg);
4907 UInt v_dst = vregNo(i->Pin.AvCMov.dst);
4908 UInt v_src = vregNo(i->Pin.AvCMov.src);
4909 PPCCondCode cc = i->Pin.AvCMov.cond;
4926 UInt v_src = vregNo(i->Pin.AvLdVSCR.src);
4932 UInt fr_dst = fregNo( i->Pin.FpUnary.dst );
4933 UInt fr_src = fregNo( i->Pin.FpUnary.src );
4935 switch (i->Pin.Dfp64Unary.op) {
4962 UInt fr_dst = fregNo( i->Pin.Dfp64Binary.dst );
4963 UInt fr_srcL = fregNo( i->Pin.Dfp64Binary.srcL );
4964 UInt fr_srcR = fregNo( i->Pin.Dfp64Binary.srcR );
4965 switch (i->Pin.Dfp64Binary.op) {
4992 UInt fr_src = fregNo(i->Pin.DfpShift.src);
4993 UInt fr_dst = fregNo(i->Pin.DfpShift.dst);
4996 shift = i->Pin.DfpShift.shift->Pri.Imm;
4998 switch (i->Pin.DfpShift.op) {
5013 UInt fr_dst = fregNo(i->Pin.ExtractExpD128.dst);
5014 UInt fr_srcHi = fregNo(i->Pin.ExtractExpD128.src_hi);
5015 UInt fr_srcLo = fregNo(i->Pin.ExtractExpD128.src_lo);
5017 switch (i->Pin.ExtractExpD128.op) {
5038 UInt fr_dstHi = fregNo(i->Pin.Dfp128Unary.dst_hi);
5039 UInt fr_dstLo = fregNo(i->Pin.Dfp128Unary.dst_lo);
5040 UInt fr_srcLo = fregNo(i->Pin.Dfp128Unary.src_lo);
5045 switch (i->Pin.Dfp128Unary.op) {
5070 UInt fr_dstHi = fregNo( i->Pin.Dfp128Binary.dst_hi );
5071 UInt fr_dstLo = fregNo( i->Pin.Dfp128Binary.dst_lo );
5072 UInt fr_srcRHi = fregNo( i->Pin.Dfp128Binary.srcR_hi );
5073 UInt fr_srcRLo = fregNo( i->Pin.Dfp128Binary.srcR_lo );
5086 switch (i->Pin.Dfp128Binary.op) {
5113 UInt fr_src_hi = fregNo(i->Pin.DfpShift128.src_hi);
5114 UInt fr_src_lo = fregNo(i->Pin.DfpShift128.src_lo);
5115 UInt fr_dst_hi = fregNo(i->Pin.DfpShift128.dst_hi);
5116 UInt fr_dst_lo = fregNo(i->Pin.DfpShift128.dst_lo);
5119 shift = i->Pin.DfpShift128.shift->Pri.Imm;
5126 switch (i->Pin.DfpShift128.op) {
5139 i->Pin.DfpShift128.op);
5153 UInt fr_dst = fregNo(i->Pin.DfpRound.dst);
5154 UInt fr_src = fregNo(i->Pin.DfpRound.src);
5157 r_rmc = i->Pin.DfpRound.r_rmc->Pri.Imm;
5167 UInt fr_dstHi = fregNo(i->Pin.DfpRound128.dst_hi);
5168 UInt fr_dstLo = fregNo(i->Pin.DfpRound128.dst_lo);
5169 UInt fr_srcHi = fregNo(i->Pin.DfpRound128.src_hi);
5170 UInt fr_srcLo = fregNo(i->Pin.DfpRound128.src_lo);
5173 r_rmc = i->Pin.DfpRound128.r_rmc->Pri.Imm;
5198 UInt fr_dst = fregNo(i->Pin.DfpQuantize.dst);
5199 UInt fr_srcL = fregNo(i->Pin.DfpQuantize.srcL);
5200 UInt fr_srcR = fregNo(i->Pin.DfpQuantize.srcR);
5203 rmc = i->Pin.DfpQuantize.rmc->Pri.Imm;
5205 switch (i->Pin.DfpQuantize.op) {
5219 UInt fr_dst_hi = fregNo(i->Pin.DfpQuantize128.dst_hi);
5220 UInt fr_dst_lo = fregNo(i->Pin.DfpQuantize128.dst_lo);
5221 UInt fr_src_hi = fregNo(i->Pin.DfpQuantize128.src_hi);
5222 UInt fr_src_lo = fregNo(i->Pin.DfpQuantize128.src_lo);
5225 rmc = i->Pin.DfpQuantize128.rmc->Pri.Imm;
5238 switch (i->Pin.DfpQuantize128.op) {
5260 UInt fr_dst = fregNo( i->Pin.DfpD128toD64.dst );
5261 UInt fr_srcHi = fregNo( i->Pin.DfpD128toD64.src_hi );
5262 UInt fr_srcLo = fregNo( i->Pin.DfpD128toD64.src_lo );
5272 switch (i->Pin.Dfp128Binary.op) {
5289 UInt fr_dstHi = fregNo( i->Pin.DfpI64StoD128.dst_hi );
5290 UInt fr_dstLo = fregNo( i->Pin.DfpI64StoD128.dst_lo );
5291 UInt fr_src = fregNo( i->Pin.DfpI64StoD128.src );
5293 switch (i->Pin.Dfp128Binary.op) {
5308 UInt fr_dstHi = fregNo(i->Pin.InsertExpD128.dst_hi);
5309 UInt fr_dstLo = fregNo(i->Pin.InsertExpD128.dst_lo);
5310 UInt fr_srcL = fregNo(i->Pin.InsertExpD128.srcL);
5311 UInt fr_srcRHi = fregNo(i->Pin.InsertExpD128.srcR_hi);
5312 UInt fr_srcRLo = fregNo(i->Pin.InsertExpD128.srcR_lo);
5333 UInt r_dst = iregNo(i->Pin.Dfp64Cmp.dst, mode64);
5334 UInt fr_srcL = fregNo(i->Pin.Dfp64Cmp.srcL);
5335 UInt fr_srcR = fregNo(i->Pin.Dfp64Cmp.srcR);
5351 UInt r_dst = iregNo(i->Pin.Dfp128Cmp.dst, mode64);
5352 UInt fr_srcL_hi = fregNo(i->Pin.Dfp128Cmp.srcL_hi);
5353 UInt fr_srcL_lo = fregNo(i->Pin.Dfp128Cmp.srcL_lo);
5354 UInt fr_srcR_hi = fregNo(i->Pin.Dfp128Cmp.srcR_hi);
5355 UInt fr_srcR_lo = fregNo(i->Pin.Dfp128Cmp.srcR_lo);
5393 i->Pin.EvCheck.amCounter, mode64);
5398 i->Pin.EvCheck.amCounter, mode64);
5403 i->Pin.EvCheck.amFailAddr, mode64);