|
From: <sv...@va...> - 2006-02-09 03:25:16
|
Author: sewardj
Date: 2006-02-09 03:25:06 +0000 (Thu, 09 Feb 2006)
New Revision: 5621
Log:
Get rid of general case in mkLazy3 and instead add new cases as they appe=
ar.
Modified:
trunk/memcheck/mc_translate.c
Modified: trunk/memcheck/mc_translate.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_translate.c 2006-02-08 19:32:20 UTC (rev 5620)
+++ trunk/memcheck/mc_translate.c 2006-02-09 03:25:06 UTC (rev 5621)
@@ -1140,24 +1140,38 @@
return at;
}
=20
- if (0) {
- VG_(printf)("mkLazy3 ");
+ /* I32 x I64 x I64 -> I32 */
+ if (t1 =3D=3D Ity_I32 && t2 =3D=3D Ity_I64 && t3 =3D=3D Ity_I64=20
+ && finalVty =3D=3D Ity_I32) {
+ if (0) VG_(printf)("mkLazy3: I32 x I64 x I64 -> I64\n");
+ at =3D mkPCastTo(mce, Ity_I64, va1);
+ at =3D mkUifU(mce, Ity_I64, at, va2);
+ at =3D mkUifU(mce, Ity_I64, at, va3);
+ at =3D mkPCastTo(mce, Ity_I32, at);
+ return at;
+ }
+
+ if (1) {
+ VG_(printf)("mkLazy3: ");
ppIRType(t1);
- VG_(printf)("_");
+ VG_(printf)(" x ");
ppIRType(t2);
- VG_(printf)("_");
+ VG_(printf)(" x ");
ppIRType(t3);
- VG_(printf)("_");
+ VG_(printf)(" -> ");
ppIRType(finalVty);
VG_(printf)("\n");
}
=20
+ tl_assert(0);
/* General case: force everything via 32-bit intermediaries. */
+ /*
at =3D mkPCastTo(mce, Ity_I32, va1);
at =3D mkUifU(mce, Ity_I32, at, mkPCastTo(mce, Ity_I32, va2));
at =3D mkUifU(mce, Ity_I32, at, mkPCastTo(mce, Ity_I32, va3));
at =3D mkPCastTo(mce, finalVty, at);
return at;
+ */
}
=20
=20
@@ -1199,7 +1213,7 @@
}
=20
if (1) {
- VG_(printf)("mkLazy4 ");
+ VG_(printf)("mkLazy4: ");
ppIRType(t1);
VG_(printf)(" x ");
ppIRType(t2);
|