Home | History | Annotate | Download | only in priv

Lines Matching refs:am

206    ARMAMode1* am        = LibVEX_Alloc_inline(sizeof(ARMAMode1));
207 am->tag = ARMam1_RI;
208 am->ARMam1.RI.reg = reg;
209 am->ARMam1.RI.simm13 = simm13;
211 return am;
214 ARMAMode1* am = LibVEX_Alloc_inline(sizeof(ARMAMode1));
215 am->tag = ARMam1_RRS;
216 am->ARMam1.RRS.base = base;
217 am->ARMam1.RRS.index = index;
218 am->ARMam1.RRS.shift = shift;
220 return am;
223 void ppARMAMode1 ( ARMAMode1* am ) {
224 switch (am->tag) {
226 vex_printf("%d(", am->ARMam1.RI.simm13);
227 ppHRegARM(am->ARMam1.RI.reg);
232 ppHRegARM(am->ARMam1.RRS.base);
234 ppHRegARM(am->ARMam1.RRS.index);
235 vex_printf(",%u)", am->ARMam1.RRS.shift);
242 static void addRegUsage_ARMAMode1 ( HRegUsage* u, ARMAMode1* am ) {
243 switch (am->tag) {
245 addHRegUse(u, HRmRead, am->ARMam1.RI.reg);
248 // addHRegUse(u, HRmRead, am->ARMam1.RRS.base);
249 // addHRegUse(u, HRmRead, am->ARMam1.RRS.index);
256 static void mapRegs_ARMAMode1 ( HRegRemap* m, ARMAMode1* am ) {
257 switch (am->tag) {
259 am->ARMam1.RI.reg = lookupHRegRemap(m, am->ARMam1.RI.reg);
262 //am->ARMam1.RR.base =lookupHRegRemap(m, am->ARMam1.RR.base);
263 //am->ARMam1.RR.index = lookupHRegRemap(m, am->ARMam1.RR.index);
274 ARMAMode2* am = LibVEX_Alloc_inline(sizeof(ARMAMode2));
275 am->tag = ARMam2_RI;
276 am->ARMam2.RI.reg = reg;
277 am->ARMam2.RI.simm9 = simm9;
279 return am;
282 ARMAMode2* am = LibVEX_Alloc_inline(sizeof(ARMAMode2));
283 am->tag = ARMam2_RR;
284 am->ARMam2.RR.base = base;
285 am->ARMam2.RR.index = index;
286 return am;
289 void ppARMAMode2 ( ARMAMode2* am ) {
290 switch (am->tag) {
292 vex_printf("%d(", am->ARMam2.RI.simm9);
293 ppHRegARM(am->ARMam2.RI.reg);
298 ppHRegARM(am->ARMam2.RR.base);
300 ppHRegARM(am->ARMam2.RR.index);
308 static void addRegUsage_ARMAMode2 ( HRegUsage* u, ARMAMode2* am ) {
309 switch (am->tag) {
311 addHRegUse(u, HRmRead, am->ARMam2.RI.reg);
314 // addHRegUse(u, HRmRead, am->ARMam2.RR.base);
315 // addHRegUse(u, HRmRead, am->ARMam2.RR.index);
322 static void mapRegs_ARMAMode2 ( HRegRemap* m, ARMAMode2* am ) {
323 switch (am->tag) {
325 am->ARMam2.RI.reg = lookupHRegRemap(m, am->ARMam2.RI.reg);
328 //am->ARMam2.RR.base =lookupHRegRemap(m, am->ARMam2.RR.base);
329 //am->ARMam2.RR.index = lookupHRegRemap(m, am->ARMam2.RR.index);
340 ARMAModeV* am = LibVEX_Alloc_inline(sizeof(ARMAModeV));
343 am->reg = reg;
344 am->simm11 = simm11;
345 return am;
348 void ppARMAModeV ( ARMAModeV* am ) {
349 vex_printf("%d(", am->simm11);
350 ppHRegARM(am->reg);
354 static void addRegUsage_ARMAModeV ( HRegUsage* u, ARMAModeV* am ) {
355 addHRegUse(u, HRmRead, am->reg);
358 static void mapRegs_ARMAModeV ( HRegRemap* m, ARMAModeV* am ) {
359 am->reg = lookupHRegRemap(m, am->reg);
366 ARMAModeN* am = LibVEX_Alloc_inline(sizeof(ARMAModeN));
367 am->tag = ARMamN_RR;
368 am->ARMamN.RR.rN = rN;
369 am->ARMamN.RR.rM = rM;
370 return am;
374 ARMAModeN* am = LibVEX_Alloc_inline(sizeof(ARMAModeN));
375 am->tag = ARMamN_R;
376 am->ARMamN.R.rN = rN;
377 return am;
380 static void addRegUsage_ARMAModeN ( HRegUsage* u, ARMAModeN* am ) {
381 if (am->tag == ARMamN_R) {
382 addHRegUse(u, HRmRead, am->ARMamN.R.rN);
384 addHRegUse(u, HRmRead, am->ARMamN.RR.rN);
385 addHRegUse(u, HRmRead, am->ARMamN.RR.rM);
389 static void mapRegs_ARMAModeN ( HRegRemap* m, ARMAModeN* am ) {
390 if (am->tag == ARMamN_R) {
391 am->ARMamN.R.rN = lookupHRegRemap(m, am->ARMamN.R.rN);
393 am->ARMamN.RR.rN = lookupHRegRemap(m, am->ARMamN.RR.rN);
394 am->ARMamN.RR.rM = lookupHRegRemap(m, am->ARMamN.RR.rM);
398 void ppARMAModeN ( ARMAModeN* am ) {
400 if (am->tag == ARMamN_R) {
401 ppHRegARM(am->ARMamN.R.rN);
403 ppHRegARM(am->ARMamN.RR.rN);
406 if (am->tag == ARMamN_RR) {
408 ppHRegARM(am->ARMamN.RR.rM);
1249 ARMInstr* ARMInstr_VLdStD ( Bool isLoad, HReg dD, ARMAModeV* am ) {
1254 i->ARMin.VLdStD.amode = am;
1257 ARMInstr* ARMInstr_VLdStS ( Bool isLoad, HReg fD, ARMAModeV* am ) {
1262 i->ARMin.VLdStS.amode = am;
2925 Bool isLoad, UInt rD, ARMAMode1* am )
2928 vassert(am->tag == ARMam1_RI); // RR case is not handled
2933 if (am->ARMam1.RI.simm13 < 0) {
2935 simm12 = -am->ARMam1.RI.simm13;
2938 simm12 = am->ARMam1.RI.simm13;
2942 iregEnc(am->ARMam1.RI.reg),
3071 ARMAMode1* am;
3076 am = i->ARMin.LdSt32.amode;
3082 am = i->ARMin.LdSt8U.amode;
3087 if (am->tag == ARMam1_RI) {
3090 if (am->ARMam1.RI.simm13 < 0) {
3092 simm12 = -am->ARMam1.RI.simm13;
3095 simm12 = am->ARMam1.RI.simm13;
3099 iregEnc(am->ARMam1.RI.reg),
3113 ARMAMode2* am = i->ARMin.LdSt16.amode;
3116 if (am->tag == ARMam2_RI) {
3117 HReg rN = am->ARMam2.RI.reg;
3120 if (am->ARMam2.RI.simm9 < 0) {
3122 simm8 = -am->ARMam2.RI.simm9;
3125 simm8 = am->ARMam2.RI.simm9;
3160 ARMAMode2* am = i->ARMin.Ld8S.amode;
3163 if (am->tag == ARMam2_RI) {
3164 HReg rN = am->ARMam2.RI.reg;
3167 if (am->ARMam2.RI.simm9 < 0) {
3169 simm8 = -am->ARMam2.RI.simm9;
3172 simm8 = am->ARMam2.RI.simm9;