|
From: <sv...@va...> - 2005-05-03 12:22:06
|
Author: sewardj
Date: 2005-05-03 13:22:00 +0100 (Tue, 03 May 2005)
New Revision: 3601
Modified:
trunk/memcheck/mc_translate.c
Log:
Handle Iop_Neg{8,16,32}.
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 2005-05-03 09:30:04 UTC (rev 3600)
+++ trunk/memcheck/mc_translate.c 2005-05-03 12:22:00 UTC (rev 3601)
@@ -1884,6 +1884,17 @@
case Iop_Not1:
return vatom;
=20
+ /* Neg* really fall under the Add/Sub banner, and as such you
+ might think would qualify for the 'expensive add/sub'
+ treatment. However, in this case since the implied literal
+ is zero (0 - arg), we just do the cheap thing anyway. */
+ case Iop_Neg8:
+ return mkLeft8(mce, vatom);
+ case Iop_Neg16:
+ return mkLeft16(mce, vatom);
+ case Iop_Neg32:
+ return mkLeft32(mce, vatom);
+
default:
ppIROp(op);
VG_(tool_panic)("memcheck:expr2vbits_Unop");
|