Lines Matching refs:mode64
95 HReg hregPPC_GPR0 ( Bool mode64 ) { return MkHRegGPR( 0, mode64); } in hregPPC_GPR0() argument
96 HReg hregPPC_GPR1 ( Bool mode64 ) { return MkHRegGPR( 1, mode64); } in hregPPC_GPR1() argument
97 HReg hregPPC_GPR2 ( Bool mode64 ) { return MkHRegGPR( 2, mode64); } in hregPPC_GPR2() argument
98 HReg hregPPC_GPR3 ( Bool mode64 ) { return MkHRegGPR( 3, mode64); } in hregPPC_GPR3() argument
99 HReg hregPPC_GPR4 ( Bool mode64 ) { return MkHRegGPR( 4, mode64); } in hregPPC_GPR4() argument
100 HReg hregPPC_GPR5 ( Bool mode64 ) { return MkHRegGPR( 5, mode64); } in hregPPC_GPR5() argument
101 HReg hregPPC_GPR6 ( Bool mode64 ) { return MkHRegGPR( 6, mode64); } in hregPPC_GPR6() argument
102 HReg hregPPC_GPR7 ( Bool mode64 ) { return MkHRegGPR( 7, mode64); } in hregPPC_GPR7() argument
103 HReg hregPPC_GPR8 ( Bool mode64 ) { return MkHRegGPR( 8, mode64); } in hregPPC_GPR8() argument
104 HReg hregPPC_GPR9 ( Bool mode64 ) { return MkHRegGPR( 9, mode64); } in hregPPC_GPR9() argument
105 HReg hregPPC_GPR10 ( Bool mode64 ) { return MkHRegGPR(10, mode64); } in hregPPC_GPR10() argument
106 HReg hregPPC_GPR11 ( Bool mode64 ) { return MkHRegGPR(11, mode64); } in hregPPC_GPR11() argument
107 HReg hregPPC_GPR12 ( Bool mode64 ) { return MkHRegGPR(12, mode64); } in hregPPC_GPR12() argument
108 HReg hregPPC_GPR13 ( Bool mode64 ) { return MkHRegGPR(13, mode64); } in hregPPC_GPR13() argument
109 HReg hregPPC_GPR14 ( Bool mode64 ) { return MkHRegGPR(14, mode64); } in hregPPC_GPR14() argument
110 HReg hregPPC_GPR15 ( Bool mode64 ) { return MkHRegGPR(15, mode64); } in hregPPC_GPR15() argument
111 HReg hregPPC_GPR16 ( Bool mode64 ) { return MkHRegGPR(16, mode64); } in hregPPC_GPR16() argument
112 HReg hregPPC_GPR17 ( Bool mode64 ) { return MkHRegGPR(17, mode64); } in hregPPC_GPR17() argument
113 HReg hregPPC_GPR18 ( Bool mode64 ) { return MkHRegGPR(18, mode64); } in hregPPC_GPR18() argument
114 HReg hregPPC_GPR19 ( Bool mode64 ) { return MkHRegGPR(19, mode64); } in hregPPC_GPR19() argument
115 HReg hregPPC_GPR20 ( Bool mode64 ) { return MkHRegGPR(20, mode64); } in hregPPC_GPR20() argument
116 HReg hregPPC_GPR21 ( Bool mode64 ) { return MkHRegGPR(21, mode64); } in hregPPC_GPR21() argument
117 HReg hregPPC_GPR22 ( Bool mode64 ) { return MkHRegGPR(22, mode64); } in hregPPC_GPR22() argument
118 HReg hregPPC_GPR23 ( Bool mode64 ) { return MkHRegGPR(23, mode64); } in hregPPC_GPR23() argument
119 HReg hregPPC_GPR24 ( Bool mode64 ) { return MkHRegGPR(24, mode64); } in hregPPC_GPR24() argument
120 HReg hregPPC_GPR25 ( Bool mode64 ) { return MkHRegGPR(25, mode64); } in hregPPC_GPR25() argument
121 HReg hregPPC_GPR26 ( Bool mode64 ) { return MkHRegGPR(26, mode64); } in hregPPC_GPR26() argument
122 HReg hregPPC_GPR27 ( Bool mode64 ) { return MkHRegGPR(27, mode64); } in hregPPC_GPR27() argument
123 HReg hregPPC_GPR28 ( Bool mode64 ) { return MkHRegGPR(28, mode64); } in hregPPC_GPR28() argument
124 HReg hregPPC_GPR29 ( Bool mode64 ) { return MkHRegGPR(29, mode64); } in hregPPC_GPR29() argument
125 HReg hregPPC_GPR30 ( Bool mode64 ) { return MkHRegGPR(30, mode64); } in hregPPC_GPR30() argument
126 HReg hregPPC_GPR31 ( Bool mode64 ) { return MkHRegGPR(31, mode64); } in hregPPC_GPR31() argument
196 void getAllocableRegs_PPC ( Int* nregs, HReg** arr, Bool mode64 ) in getAllocableRegs_PPC() argument
199 if (mode64) in getAllocableRegs_PPC()
207 (*arr)[i++] = hregPPC_GPR3(mode64); in getAllocableRegs_PPC()
208 (*arr)[i++] = hregPPC_GPR4(mode64); in getAllocableRegs_PPC()
209 (*arr)[i++] = hregPPC_GPR5(mode64); in getAllocableRegs_PPC()
210 (*arr)[i++] = hregPPC_GPR6(mode64); in getAllocableRegs_PPC()
211 (*arr)[i++] = hregPPC_GPR7(mode64); in getAllocableRegs_PPC()
212 (*arr)[i++] = hregPPC_GPR8(mode64); in getAllocableRegs_PPC()
213 (*arr)[i++] = hregPPC_GPR9(mode64); in getAllocableRegs_PPC()
214 (*arr)[i++] = hregPPC_GPR10(mode64); in getAllocableRegs_PPC()
215 if (!mode64) { in getAllocableRegs_PPC()
219 (*arr)[i++] = hregPPC_GPR11(mode64); in getAllocableRegs_PPC()
220 (*arr)[i++] = hregPPC_GPR12(mode64); in getAllocableRegs_PPC()
224 (*arr)[i++] = hregPPC_GPR14(mode64); in getAllocableRegs_PPC()
225 (*arr)[i++] = hregPPC_GPR15(mode64); in getAllocableRegs_PPC()
226 (*arr)[i++] = hregPPC_GPR16(mode64); in getAllocableRegs_PPC()
227 (*arr)[i++] = hregPPC_GPR17(mode64); in getAllocableRegs_PPC()
228 (*arr)[i++] = hregPPC_GPR18(mode64); in getAllocableRegs_PPC()
229 (*arr)[i++] = hregPPC_GPR19(mode64); in getAllocableRegs_PPC()
230 (*arr)[i++] = hregPPC_GPR20(mode64); in getAllocableRegs_PPC()
231 (*arr)[i++] = hregPPC_GPR21(mode64); in getAllocableRegs_PPC()
232 (*arr)[i++] = hregPPC_GPR22(mode64); in getAllocableRegs_PPC()
233 (*arr)[i++] = hregPPC_GPR23(mode64); in getAllocableRegs_PPC()
234 (*arr)[i++] = hregPPC_GPR24(mode64); in getAllocableRegs_PPC()
235 (*arr)[i++] = hregPPC_GPR25(mode64); in getAllocableRegs_PPC()
236 (*arr)[i++] = hregPPC_GPR26(mode64); in getAllocableRegs_PPC()
237 (*arr)[i++] = hregPPC_GPR27(mode64); in getAllocableRegs_PPC()
238 (*arr)[i++] = hregPPC_GPR28(mode64); in getAllocableRegs_PPC()
725 PPCInstr* PPCInstr_LI ( HReg dst, ULong imm64, Bool mode64 ) in PPCInstr_LI() argument
731 if (!mode64) in PPCInstr_LI()
845 HReg dst, PPCAMode* src, Bool mode64 ) { in PPCInstr_Load() argument
852 if (sz == 8) vassert(mode64); in PPCInstr_Load()
856 HReg dst, HReg src, Bool mode64 ) in PPCInstr_LoadL() argument
864 if (sz == 8) vassert(mode64); in PPCInstr_LoadL()
868 Bool mode64 ) { in PPCInstr_Store() argument
875 if (sz == 8) vassert(mode64); in PPCInstr_Store()
878 PPCInstr* PPCInstr_StoreC ( UChar sz, HReg dst, HReg src, Bool mode64 ) { in PPCInstr_StoreC() argument
885 if (sz == 8) vassert(mode64); in PPCInstr_StoreC()
1140 static void ppLoadImm ( HReg dst, ULong imm, Bool mode64 ) { in ppLoadImm() argument
1143 if (!mode64) { in ppLoadImm()
1159 void ppPPCInstr ( PPCInstr* i, Bool mode64 ) in ppPPCInstr() argument
1163 ppLoadImm(i->Pin.LI.dst, i->Pin.LI.imm64, mode64); in ppPPCInstr()
1265 ppLoadImm(hregPPC_GPR10(mode64), i->Pin.Call.target, mode64); in ppPPCInstr()
1291 ppLoadImm(hregPPC_GPR3(mode64), i->Pin.Goto.dst->Pri.Imm, in ppPPCInstr()
1292 mode64); in ppPPCInstr()
1294 ppMovReg(hregPPC_GPR3(mode64), i->Pin.Goto.dst->Pri.Reg); in ppPPCInstr()
1309 ppLoadImm(i->Pin.CMov.dst, i->Pin.CMov.src->Pri.Imm, mode64); in ppPPCInstr()
1496 ppLoadImm(hregPPC_GPR30(mode64), in ppPPCInstr()
1497 i->Pin.AvLdSt.addr->Pam.RR.index, mode64); in ppPPCInstr()
1644 void getRegUsage_PPCInstr ( HRegUsage* u, PPCInstr* i, Bool mode64 ) in getRegUsage_PPCInstr() argument
1697 addHRegUse(u, HRmWrite, hregPPC_GPR3(mode64)); in getRegUsage_PPCInstr()
1698 addHRegUse(u, HRmWrite, hregPPC_GPR4(mode64)); in getRegUsage_PPCInstr()
1699 addHRegUse(u, HRmWrite, hregPPC_GPR5(mode64)); in getRegUsage_PPCInstr()
1700 addHRegUse(u, HRmWrite, hregPPC_GPR6(mode64)); in getRegUsage_PPCInstr()
1701 addHRegUse(u, HRmWrite, hregPPC_GPR7(mode64)); in getRegUsage_PPCInstr()
1702 addHRegUse(u, HRmWrite, hregPPC_GPR8(mode64)); in getRegUsage_PPCInstr()
1703 addHRegUse(u, HRmWrite, hregPPC_GPR9(mode64)); in getRegUsage_PPCInstr()
1704 addHRegUse(u, HRmWrite, hregPPC_GPR10(mode64)); in getRegUsage_PPCInstr()
1705 if (!mode64) { in getRegUsage_PPCInstr()
1706 addHRegUse(u, HRmWrite, hregPPC_GPR11(mode64)); in getRegUsage_PPCInstr()
1707 addHRegUse(u, HRmWrite, hregPPC_GPR12(mode64)); in getRegUsage_PPCInstr()
1713 if (argir &(1<<10)) addHRegUse(u, HRmRead, hregPPC_GPR10(mode64)); in getRegUsage_PPCInstr()
1714 if (argir & (1<<9)) addHRegUse(u, HRmRead, hregPPC_GPR9(mode64)); in getRegUsage_PPCInstr()
1715 if (argir & (1<<8)) addHRegUse(u, HRmRead, hregPPC_GPR8(mode64)); in getRegUsage_PPCInstr()
1716 if (argir & (1<<7)) addHRegUse(u, HRmRead, hregPPC_GPR7(mode64)); in getRegUsage_PPCInstr()
1717 if (argir & (1<<6)) addHRegUse(u, HRmRead, hregPPC_GPR6(mode64)); in getRegUsage_PPCInstr()
1718 if (argir & (1<<5)) addHRegUse(u, HRmRead, hregPPC_GPR5(mode64)); in getRegUsage_PPCInstr()
1719 if (argir & (1<<4)) addHRegUse(u, HRmRead, hregPPC_GPR4(mode64)); in getRegUsage_PPCInstr()
1720 if (argir & (1<<3)) addHRegUse(u, HRmRead, hregPPC_GPR3(mode64)); in getRegUsage_PPCInstr()
1729 addHRegUse(u, HRmWrite, hregPPC_GPR10(mode64)); in getRegUsage_PPCInstr()
1737 addHRegUse(u, HRmWrite, hregPPC_GPR3(mode64)); in getRegUsage_PPCInstr()
1744 addHRegUse(u, HRmWrite, GuestStatePtr(mode64)); in getRegUsage_PPCInstr()
1829 addHRegUse(u, HRmWrite, hregPPC_GPR30(mode64)); in getRegUsage_PPCInstr()
1905 ppPPCInstr(i, mode64); in getRegUsage_PPCInstr()
1916 void mapRegs_PPCInstr ( HRegRemap* m, PPCInstr* i, Bool mode64 ) in mapRegs_PPCInstr() argument
2101 ppPPCInstr(i, mode64); in mapRegs_PPCInstr()
2142 HReg rreg, Int offsetB, Bool mode64 ) in genSpill_PPC() argument
2147 am = PPCAMode_IR( offsetB, GuestStatePtr(mode64) ); in genSpill_PPC()
2150 vassert(mode64); in genSpill_PPC()
2151 *i1 = PPCInstr_Store( 8, am, rreg, mode64 ); in genSpill_PPC()
2154 vassert(!mode64); in genSpill_PPC()
2155 *i1 = PPCInstr_Store( 4, am, rreg, mode64 ); in genSpill_PPC()
2172 HReg rreg, Int offsetB, Bool mode64 ) in genReload_PPC() argument
2177 am = PPCAMode_IR( offsetB, GuestStatePtr(mode64) ); in genReload_PPC()
2180 vassert(mode64); in genReload_PPC()
2181 *i1 = PPCInstr_Load( 8, rreg, am, mode64 ); in genReload_PPC()
2184 vassert(!mode64); in genReload_PPC()
2185 *i1 = PPCInstr_Load( 4, rreg, am, mode64 ); in genReload_PPC()
2203 static UInt iregNo ( HReg r, Bool mode64 ) in iregNo() argument
2206 vassert(hregClass(r) == mode64 ? HRcInt64 : HRcInt32); in iregNo()
2435 PPCAMode* am, Bool mode64 ) in doAMode_IR() argument
2441 rA = iregNo(am->Pam.IR.base, mode64); in doAMode_IR()
2445 vassert(mode64); in doAMode_IR()
2455 UInt rSD, PPCAMode* am, Bool mode64 ) in doAMode_RR() argument
2460 rA = iregNo(am->Pam.RR.base, mode64); in doAMode_RR()
2461 rB = iregNo(am->Pam.RR.index, mode64); in doAMode_RR()
2469 static UChar* mkLoadImm ( UChar* p, UInt r_dst, ULong imm, Bool mode64 ) in mkLoadImm() argument
2473 if (!mode64) { in mkLoadImm()
2498 vassert(mode64); in mkLoadImm()
2593 Bool mode64, void* dispatch ) in emit_PPCInstr() argument
2600 vex_printf("asm ");ppPPCInstr(i, mode64); vex_printf("\n"); in emit_PPCInstr()
2606 p = mkLoadImm(p, iregNo(i->Pin.LI.dst, mode64), in emit_PPCInstr()
2607 i->Pin.LI.imm64, mode64); in emit_PPCInstr()
2613 UInt r_dst = iregNo(i->Pin.Alu.dst, mode64); in emit_PPCInstr()
2614 UInt r_srcL = iregNo(i->Pin.Alu.srcL, mode64); in emit_PPCInstr()
2616 iregNo(srcR->Prh.Reg.reg, mode64); in emit_PPCInstr()
2686 UInt r_dst = iregNo(i->Pin.Shft.dst, mode64); in emit_PPCInstr()
2687 UInt r_srcL = iregNo(i->Pin.Shft.srcL, mode64); in emit_PPCInstr()
2689 iregNo(srcR->Prh.Reg.reg, mode64); in emit_PPCInstr()
2690 if (!mode64) in emit_PPCInstr()
2767 if (mode64) in emit_PPCInstr()
2799 UInt r_srcL = iregNo(i->Pin.AddSubC.srcL, mode64); in emit_PPCInstr()
2800 UInt r_srcR = iregNo(i->Pin.AddSubC.srcR, mode64); in emit_PPCInstr()
2801 UInt r_dst = iregNo(i->Pin.AddSubC.dst, mode64); in emit_PPCInstr()
2822 UInt r_srcL = iregNo(i->Pin.Cmp.srcL, mode64); in emit_PPCInstr()
2826 if (!mode64) // cmp double word invalid for mode32 in emit_PPCInstr()
2843 r_srcR = iregNo(srcR->Prh.Reg.reg, mode64); in emit_PPCInstr()
2856 UInt r_dst = iregNo(i->Pin.Unary.dst, mode64); in emit_PPCInstr()
2857 UInt r_src = iregNo(i->Pin.Unary.src, mode64); in emit_PPCInstr()
2870 vassert(mode64); in emit_PPCInstr()
2874 vassert(mode64); in emit_PPCInstr()
2885 UInt r_dst = iregNo(i->Pin.MulL.dst, mode64); in emit_PPCInstr()
2886 UInt r_srcL = iregNo(i->Pin.MulL.srcL, mode64); in emit_PPCInstr()
2887 UInt r_srcR = iregNo(i->Pin.MulL.srcR, mode64); in emit_PPCInstr()
2889 if (!mode64) in emit_PPCInstr()
2919 UInt r_dst = iregNo(i->Pin.Div.dst, mode64); in emit_PPCInstr()
2920 UInt r_srcL = iregNo(i->Pin.Div.srcL, mode64); in emit_PPCInstr()
2921 UInt r_srcR = iregNo(i->Pin.Div.srcR, mode64); in emit_PPCInstr()
2923 if (!mode64) in emit_PPCInstr()
2956 p = mkLoadImm(p, r_dst, i->Pin.Call.target, mode64); in emit_PPCInstr()
3027 p = mkLoadImm(p, r_ret, imm_dst, mode64); // p += 4|8|20 in emit_PPCInstr()
3030 r_dst = iregNo(i->Pin.Goto.dst->Pri.Reg, mode64); in emit_PPCInstr()
3054 r_dst = iregNo(i->Pin.CMov.dst, mode64); in emit_PPCInstr()
3069 p = mkLoadImm(p, r_dst, imm_src, mode64); // p += 4|8|20 in emit_PPCInstr()
3072 r_src = iregNo(i->Pin.CMov.src->Pri.Reg, mode64); in emit_PPCInstr()
3091 UInt r_dst = iregNo(i->Pin.Load.dst, mode64); in emit_PPCInstr()
3095 if (mode64 && (sz == 4 || sz == 8)) { in emit_PPCInstr()
3103 case 8: opc1 = 58; vassert(mode64); break; in emit_PPCInstr()
3106 p = doAMode_IR(p, opc1, r_dst, am_addr, mode64); in emit_PPCInstr()
3113 case 8: opc2 = 21; vassert(mode64); break; in emit_PPCInstr()
3116 p = doAMode_RR(p, 31, opc2, r_dst, am_addr, mode64); in emit_PPCInstr()
3125 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64), in emit_PPCInstr()
3126 0, iregNo(i->Pin.LoadL.src, mode64), 20, 0); in emit_PPCInstr()
3129 if (i->Pin.LoadL.sz == 8 && mode64) { in emit_PPCInstr()
3130 p = mkFormX(p, 31, iregNo(i->Pin.LoadL.dst, mode64), in emit_PPCInstr()
3131 0, iregNo(i->Pin.LoadL.src, mode64), 84, 0); in emit_PPCInstr()
3140 UInt r_dst = iregNo(i->Pin.Set.dst, mode64); in emit_PPCInstr()
3168 p = mkFormX(p, 31, iregNo(i->Pin.MfCR.dst, mode64), 0, 0, 19, 0); in emit_PPCInstr()
3180 UInt r_src = iregNo(i->Pin.Store.src, mode64); in emit_PPCInstr()
3184 if (mode64 && (sz == 4 || sz == 8)) { in emit_PPCInstr()
3192 case 8: vassert(mode64); in emit_PPCInstr()
3197 p = doAMode_IR(p, opc1, r_src, am_addr, mode64); in emit_PPCInstr()
3204 case 8: vassert(mode64); in emit_PPCInstr()
3209 p = doAMode_RR(p, 31, opc2, r_src, am_addr, mode64); in emit_PPCInstr()
3219 p = mkFormX(p, 31, iregNo(i->Pin.StoreC.src, mode64), in emit_PPCInstr()
3220 0, iregNo(i->Pin.StoreC.dst, mode64), 150, 1); in emit_PPCInstr()
3223 if (i->Pin.StoreC.sz == 8 && mode64) { in emit_PPCInstr()
3224 p = mkFormX(p, 31, iregNo(i->Pin.StoreC.src, mode64), in emit_PPCInstr()
3225 0, iregNo(i->Pin.StoreC.dst, mode64), 214, 1); in emit_PPCInstr()
3341 p = doAMode_RR(p, 31, opc, f_reg, am_addr, mode64); in emit_PPCInstr()
3344 p = doAMode_IR(p, opc, f_reg, am_addr, mode64); in emit_PPCInstr()
3349 p = doAMode_RR(p, 31, opc, f_reg, am_addr, mode64); in emit_PPCInstr()
3352 p = doAMode_IR(p, opc, f_reg, am_addr, mode64); in emit_PPCInstr()
3359 UInt ir_addr = iregNo(i->Pin.FpSTFIW.addr, mode64); in emit_PPCInstr()
3424 UInt r_dst = iregNo(i->Pin.FpCmp.dst, mode64); in emit_PPCInstr()
3441 UInt reg = iregNo(i->Pin.RdWrLR.gpr, mode64); in emit_PPCInstr()
3456 r_base = iregNo(i->Pin.AvLdSt.addr->Pam.RR.base, mode64); in emit_PPCInstr()
3462 i->Pin.AvLdSt.addr->Pam.IR.index, mode64); in emit_PPCInstr()
3464 r_idx = iregNo(i->Pin.AvLdSt.addr->Pam.RR.index, mode64); in emit_PPCInstr()
3841 ppPPCInstr(i, mode64); in emit_PPCInstr()