Home | History | Annotate | Download | only in priv

Lines Matching refs:dst

467 void ppPPCRI ( PPCRI* dst ) {
468 switch (dst->tag) {
470 vex_printf("0x%llx", dst->Pri.Imm);
473 ppHRegPPC(dst->Pri.Reg);
483 static void addRegUsage_PPCRI ( HRegUsage* u, PPCRI* dst ) {
484 switch (dst->tag) {
488 addHRegUse(u, HRmRead, dst->Pri.Reg);
495 static void mapRegs_PPCRI ( HRegRemap* m, PPCRI* dst ) {
496 switch (dst->tag) {
500 dst->Pri.Reg = lookupHRegRemap(m, dst->Pri.Reg);
541 static void addRegUsage_PPCVI5s ( HRegUsage* u, PPCVI5s* dst ) {
542 switch (dst->tag) {
546 addHRegUse(u, HRmRead, dst->Pvi.Reg);
553 static void mapRegs_PPCVI5s ( HRegRemap* m, PPCVI5s* dst ) {
554 switch (dst->tag) {
558 dst->Pvi.Reg = lookupHRegRemap(m, dst->Pvi.Reg);
725 PPCInstr* PPCInstr_LI ( HReg dst, ULong imm64, Bool mode64 )
729 i->Pin.LI.dst = dst;
735 PPCInstr* PPCInstr_Alu ( PPCAluOp op, HReg dst,
740 i->Pin.Alu.dst = dst;
746 HReg dst, HReg srcL, PPCRH* srcR ) {
751 i->Pin.Shft.dst = dst;
757 HReg dst, HReg srcL, HReg srcR ) {
762 i->Pin.AddSubC.dst = dst;
778 PPCInstr* PPCInstr_Unary ( PPCUnaryOp op, HReg dst, HReg src ) {
782 i->Pin.Unary.dst = dst;
787 HReg dst, HReg srcL, HReg srcR ) {
793 i->Pin.MulL.dst = dst;
802 HReg dst, HReg srcL, HReg srcR ) {
807 i->Pin.Div.dst = dst;
826 PPCCondCode cond, PPCRI* dst ) {
830 i->Pin.Goto.dst = dst;
835 HReg dst, PPCRI* src ) {
840 i->Pin.CMov.dst = dst;
845 HReg dst, PPCAMode* src, Bool mode64 ) {
850 i->Pin.Load.dst = dst;
856 HReg dst, HReg src, Bool mode64 )
862 i->Pin.LoadL.dst = dst;
867 PPCInstr* PPCInstr_Store ( UChar sz, PPCAMode* dst, HReg src,
873 i->Pin.Store.dst = dst;
878 PPCInstr* PPCInstr_StoreC ( UChar sz, HReg dst, HReg src, Bool mode64 ) {
883 i->Pin.StoreC.dst = dst;
888 PPCInstr* PPCInstr_Set ( PPCCondCode cond, HReg dst ) {
892 i->Pin.Set.dst = dst;
895 PPCInstr* PPCInstr_MfCR ( HReg dst )
899 i->Pin.MfCR.dst = dst;
909 PPCInstr* PPCInstr_FpUnary ( PPCFpOp op, HReg dst, HReg src ) {
913 i->Pin.FpUnary.dst = dst;
917 PPCInstr* PPCInstr_FpBinary ( PPCFpOp op, HReg dst,
922 i->Pin.FpBinary.dst = dst;
927 PPCInstr* PPCInstr_FpMulAcc ( PPCFpOp op, HReg dst, HReg srcML,
933 i->Pin.FpMulAcc.dst = dst;
958 PPCInstr* PPCInstr_FpRSP ( HReg dst, HReg src ) {
961 i->Pin.FpRSP.dst = dst;
966 HReg dst, HReg src ) {
971 i->Pin.FpCftI.dst = dst;
976 PPCInstr* PPCInstr_FpCMov ( PPCCondCode cond, HReg dst, HReg src ) {
980 i->Pin.FpCMov.dst = dst;
991 PPCInstr* PPCInstr_FpCmp ( HReg dst, HReg srcL, HReg srcR ) {
994 i->Pin.FpCmp.dst = dst;
1020 PPCInstr* PPCInstr_AvUnary ( PPCAvOp op, HReg dst, HReg src ) {
1024 i->Pin.AvUnary.dst = dst;
1028 PPCInstr* PPCInstr_AvBinary ( PPCAvOp op, HReg dst,
1033 i->Pin.AvBinary.dst = dst;
1038 PPCInstr* PPCInstr_AvBin8x16 ( PPCAvOp op, HReg dst,
1043 i->Pin.AvBin8x16.dst = dst;
1048 PPCInstr* PPCInstr_AvBin16x8 ( PPCAvOp op, HReg dst,
1053 i->Pin.AvBin16x8.dst = dst;
1058 PPCInstr* PPCInstr_AvBin32x4 ( PPCAvOp op, HReg dst,
1063 i->Pin.AvBin32x4.dst = dst;
1068 PPCInstr* PPCInstr_AvBin32Fx4 ( PPCAvOp op, HReg dst,
1073 i->Pin.AvBin32Fx4.dst = dst;
1078 PPCInstr* PPCInstr_AvUn32Fx4 ( PPCAvOp op, HReg dst, HReg src ) {
1082 i->Pin.AvUn32Fx4.dst = dst;
1086 PPCInstr* PPCInstr_AvPerm ( HReg dst, HReg srcL, HReg srcR, HReg ctl ) {
1089 i->Pin.AvPerm.dst = dst;
1095 PPCInstr* PPCInstr_AvSel ( HReg ctl, HReg dst, HReg srcL, HReg srcR ) {
1099 i->Pin.AvSel.dst = dst;
1104 PPCInstr* PPCInstr_AvShlDbl ( UChar shift, HReg dst,
1109 i->Pin.AvShlDbl.dst = dst;
1114 PPCInstr* PPCInstr_AvSplat ( UChar sz, HReg dst, PPCVI5s* src ) {
1118 i->Pin.AvSplat.dst = dst;
1122 PPCInstr* PPCInstr_AvCMov ( PPCCondCode cond, HReg dst, HReg src ) {
1126 i->Pin.AvCMov.dst = dst;
1140 static void ppLoadImm ( HReg dst, ULong imm, Bool mode64 ) {
1142 ppHRegPPC(dst);
1150 static void ppMovReg ( HReg dst, HReg src ) {
1151 if (hregNumber(dst) != hregNumber(src)) {
1153 ppHRegPPC(dst);
1163 ppLoadImm(i->Pin.LI.dst, i->Pin.LI.imm64, mode64);
1173 ppHRegPPC(i->Pin.Alu.dst);
1183 ppHRegPPC(i->Pin.Alu.dst);
1191 ppHRegPPC(i->Pin.Alu.dst);
1204 ppHRegPPC(i->Pin.Shft.dst);
1215 ppHRegPPC(i->Pin.AddSubC.dst);
1233 ppHRegPPC(i->Pin.Unary.dst);
1242 ppHRegPPC(i->Pin.MulL.dst);
1252 ppHRegPPC(i->Pin.Div.dst);
1290 if (i->Pin.Goto.dst->tag == Pri_Imm) {
1291 ppLoadImm(hregPPC_GPR3(mode64), i->Pin.Goto.dst->Pri.Imm,
1294 ppMovReg(hregPPC_GPR3(mode64), i->Pin.Goto.dst->Pri.Reg);
1300 ppHRegPPC(i->Pin.CMov.dst);
1309 ppLoadImm(i->Pin.CMov.dst, i->Pin.CMov.src->Pri.Imm, mode64);
1311 ppMovReg(i->Pin.CMov.dst, i->Pin.CMov.src->Pri.Reg);
1320 ppHRegPPC(i->Pin.Load.dst);
1327 ppHRegPPC(i->Pin.LoadL.dst);
1333 Bool idxd = toBool(i->Pin.Store.dst->tag == Pam_RR);
1338 ppPPCAMode(i->Pin.Store.dst);
1345 ppHRegPPC(i->Pin.StoreC.dst);
1350 ppHRegPPC(i->Pin.Set.dst);
1353 ppHRegPPC(i->Pin.Set.dst);
1357 ppHRegPPC(i->Pin.Set.dst);
1361 ppHRegPPC(i->Pin.Set.dst);
1363 ppHRegPPC(i->Pin.Set.dst);
1372 ppHRegPPC(i->Pin.MfCR.dst);
1380 ppHRegPPC(i->Pin.FpUnary.dst);
1386 ppHRegPPC(i->Pin.FpBinary.dst);
1394 ppHRegPPC(i->Pin.FpMulAcc.dst);
1431 ppHRegPPC(i->Pin.FpRSP.dst);
1446 ppHRegPPC(i->Pin.FpCftI.dst);
1453 ppHRegPPC(i->Pin.FpCMov.dst);
1462 ppHRegPPC(i->Pin.FpCMov.dst);
1479 ppHRegPPC(i->Pin.FpCmp.dst);
1481 ppHRegPPC(i->Pin.FpCmp.dst);
1483 ppHRegPPC(i->Pin.FpCmp.dst);
1517 ppHRegPPC(i->Pin.AvUnary.dst);
1523 ppHRegPPC(i->Pin.AvBinary.dst);
1531 ppHRegPPC(i->Pin.AvBin8x16.dst);
1539 ppHRegPPC(i->Pin.AvBin16x8.dst);
1547 ppHRegPPC(i->Pin.AvBin32x4.dst);
1555 ppHRegPPC(i->Pin.AvBin32Fx4.dst);
1563 ppHRegPPC(i->Pin.AvUn32Fx4.dst);
1569 ppHRegPPC(i->Pin.AvPerm.dst);
1580 ppHRegPPC(i->Pin.AvSel.dst);
1591 ppHRegPPC(i->Pin.AvShlDbl.dst);
1604 ppHRegPPC(i->Pin.AvSplat.dst);
1614 ppHRegPPC(i->Pin.AvCMov.dst);
1623 ppHRegPPC(i->Pin.AvCMov.dst);
1649 addHRegUse(u, HRmWrite, i->Pin.LI.dst);
1654 addHRegUse(u, HRmWrite, i->Pin.Alu.dst);
1659 addHRegUse(u, HRmWrite, i->Pin.Shft.dst);
1662 addHRegUse(u, HRmWrite, i->Pin.AddSubC.dst);
1671 addHRegUse(u, HRmWrite, i->Pin.Unary.dst);
1675 addHRegUse(u, HRmWrite, i->Pin.MulL.dst);
1680 addHRegUse(u, HRmWrite, i->Pin.Div.dst);
1735 addRegUsage_PPCRI(u, i->Pin.Goto.dst);
1748 addHRegUse(u, HRmWrite, i->Pin.CMov.dst);
1752 addHRegUse(u, HRmWrite, i->Pin.Load.dst);
1756 addHRegUse(u, HRmWrite, i->Pin.LoadL.dst);
1760 addRegUsage_PPCAMode(u, i->Pin.Store.dst);
1764 addHRegUse(u, HRmRead, i->Pin.StoreC.dst);
1767 addHRegUse(u, HRmWrite, i->Pin.Set.dst);
1770 addHRegUse(u, HRmWrite, i->Pin.MfCR.dst);
1776 addHRegUse(u, HRmWrite, i->Pin.FpUnary.dst);
1780 addHRegUse(u, HRmWrite, i->Pin.FpBinary.dst);
1785 addHRegUse(u, HRmWrite, i->Pin.FpMulAcc.dst);
1800 addHRegUse(u, HRmWrite, i->Pin.FpRSP.dst);
1804 addHRegUse(u, HRmWrite, i->Pin.FpCftI.dst);
1808 addHRegUse(u, HRmModify, i->Pin.FpCMov.dst);
1815 addHRegUse(u, HRmWrite, i->Pin.FpCmp.dst);
1833 addHRegUse(u, HRmWrite, i->Pin.AvUnary.dst);
1838 && i->Pin.AvBinary.dst == i->Pin.AvBinary.srcL
1839 && i->Pin.AvBinary.dst == i->Pin.AvBinary.srcR) {
1842 addHRegUse(u, HRmWrite, i->Pin.AvBinary.dst);
1844 addHRegUse(u, HRmWrite, i->Pin.AvBinary.dst);
1850 addHRegUse(u, HRmWrite, i->Pin.AvBin8x16.dst);
1855 addHRegUse(u, HRmWrite, i->Pin.AvBin16x8.dst);
1860 addHRegUse(u, HRmWrite, i->Pin.AvBin32x4.dst);
1865 addHRegUse(u, HRmWrite, i->Pin.AvBin32Fx4.dst);
1872 addHRegUse(u, HRmWrite, i->Pin.AvUn32Fx4.dst);
1876 addHRegUse(u, HRmWrite, i->Pin.AvPerm.dst);
1882 addHRegUse(u, HRmWrite, i->Pin.AvSel.dst);
1888 addHRegUse(u, HRmWrite, i->Pin.AvShlDbl.dst);
1893 addHRegUse(u, HRmWrite, i->Pin.AvSplat.dst);
1897 addHRegUse(u, HRmModify, i->Pin.AvCMov.dst);
1920 mapReg(m, &i->Pin.LI.dst);
1923 mapReg(m, &i->Pin.Alu.dst);
1928 mapReg(m, &i->Pin.Shft.dst);
1933 mapReg(m, &i->Pin.AddSubC.dst);
1942 mapReg(m, &i->Pin.Unary.dst);
1946 mapReg(m, &i->Pin.MulL.dst);
1951 mapReg(m, &i->Pin.Div.dst);
1958 mapRegs_PPCRI(m, i->Pin.Goto.dst);
1962 mapReg(m, &i->Pin.CMov.dst);
1966 mapReg(m, &i->Pin.Load.dst);
1970 mapReg(m, &i->Pin.LoadL.dst);
1974 mapRegs_PPCAMode(m, i->Pin.Store.dst);
1978 dst);
1981 mapReg(m, &i->Pin.Set.dst);
1984 mapReg(m, &i->Pin.MfCR.dst);
1989 mapReg(m, &i->Pin.FpUnary.dst);
1993 mapReg(m, &i->Pin.FpBinary.dst);
1998 mapReg(m, &i->Pin.FpMulAcc.dst);
2012 mapReg(m, &i->Pin.FpRSP.dst);
2016 mapReg(m, &i->Pin.FpCftI.dst);
2020 mapReg(m, &i->Pin.FpCMov.dst);
2027 mapReg(m, &i->Pin.FpCmp.dst);
2039 mapReg(m, &i->Pin.AvUnary.dst);
2043 mapReg(m, &i->Pin.AvBinary.dst);
2048 mapReg(m, &i->Pin.AvBin8x16.dst);
2053 mapReg(m, &i->Pin.AvBin16x8.dst);
2058 mapReg(m, &i->Pin.AvBin32x4.dst);
2063 mapReg(m, &i->Pin.AvBin32Fx4.dst);
2068 mapReg(m, &i->Pin.AvUn32Fx4.dst);
2072 mapReg(m, &i->Pin.AvPerm.dst);
2078 mapReg(m, &i->Pin.AvSel.dst);
2084 mapReg(m, &i->Pin.AvShlDbl.dst);
2089 mapReg(m, &i->Pin.AvSplat.dst);
2093 mapReg(m, &i->Pin.AvCMov.dst);
2107 source and destination to *src and *dst. If in doubt say No. Used
2110 Bool isMove_PPCInstr ( PPCInstr* i, HReg* src, HReg* dst )
2122 *dst = i->Pin.Alu.dst;
2130 *dst = i->Pin.FpUnary.dst;
2606 p = mkLoadImm(p, iregNo(i->Pin.LI.dst, mode64),
2613 UInt r_dst = iregNo(i->Pin.Alu.dst, mode64);
2686 UInt r_dst = iregNo(i->Pin.Shft.dst, mode64);
2801 UInt r_dst = iregNo(i->Pin.AddSubC.dst, mode64);
2856 UInt r_dst = iregNo(i->Pin.Unary.dst, mode64);
2885 UInt r_dst = iregNo(i->Pin.MulL.dst, mode64);
2919 UInt r_dst = iregNo(i->Pin.Div.dst, mode64);
3025 if (i->Pin.Goto.dst->tag == Pri_Imm) {
3026 imm_dst = i->Pin.Goto.dst->Pri.Imm;
3029 vassert(i->Pin.Goto.dst->tag == Pri_Reg);
3030 r_dst = iregNo(i->Pin.Goto.dst->Pri.Reg, mode64);
3054 r_dst = iregNo(i->Pin.CMov.dst, mode64);
3065 // cond true: move src => dst
3091 UInt r_dst = iregNo(i->Pin.Load.dst, mode64);
3125 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64),
3130 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64),
3140 UInt r_dst = iregNo(i->Pin.Set.dst, mode64);
3145 // Just load 1 to dst => li dst,1
3167 // mfcr dst
3168 p = mkFormX(p, 31, iregNo(i->Pin.MfCR.dst, mode64), 0, 0, 19, 0);
3179 PPCAMode* am_addr = i->Pin.Store.dst;
3182 switch (i->Pin.Store.dst->tag) {
3220 0, iregNo(i->Pin.StoreC.dst, mode64), 150, 1);
3225 0, iregNo(i->Pin.StoreC.dst, mode64), 214, 1);
3232 UInt fr_dst = fregNo(i->Pin.FpUnary.dst);
3272 UInt fr_dst = fregNo(i->Pin.FpBinary.dst);
3307 UInt fr_dst = fregNo(i->Pin.FpMulAcc.dst);
3368 UInt fr_dst = fregNo(i->Pin.FpRSP.dst);
3376 UInt fr_dst = fregNo(i->Pin.FpCftI.dst);
3397 UInt fr_dst = fregNo(i->Pin.FpCMov.dst);
3424 UInt r_dst = iregNo(i->Pin.FpCmp.dst, mode64);
3478 UInt v_dst = vregNo(i->Pin.AvUnary.dst);
3506 UInt v_dst = vregNo(i->Pin.AvBinary.dst);
3533 UInt v_dst = vregNo(i->Pin.AvBin8x16.dst);
3579 UInt v_dst = vregNo(i->Pin.AvBin16x8.dst);
3631 UInt v_dst = vregNo(i->Pin.AvBin32x4.dst);
3679 UInt v_dst = vregNo(i->Pin.AvBin32Fx4.dst);
3735 UInt v_dst = vregNo(i->Pin.AvUn32Fx4.dst);
3757 UInt v_dst = vregNo(i->Pin.AvPerm.dst);
3767 UInt v_dst = vregNo(i->Pin.AvSel.dst);
3776 UInt v_dst = vregNo(i->Pin.AvShlDbl.dst);
3785 UInt v_dst = vregNo(i->Pin.AvShlDbl.dst);
3811 UInt v_dst = vregNo(i->Pin.AvCMov.dst);