|
From: <sv...@va...> - 2011-03-26 07:29:00
|
Author: sewardj
Date: 2011-03-26 07:28:51 +0000 (Sat, 26 Mar 2011)
New Revision: 2117
Log:
Don't overwrite CC_NDEP in shift by zero. Fixes #269354.
(Stephen McCamant, smcc@CS.Berkeley.EDU)
Modified:
trunk/priv/guest_x86_toIR.c
Modified: trunk/priv/guest_x86_toIR.c
===================================================================
--- trunk/priv/guest_x86_toIR.c 2011-03-24 11:14:02 UTC (rev 2116)
+++ trunk/priv/guest_x86_toIR.c 2011-03-26 07:28:51 UTC (rev 2117)
@@ -998,7 +998,10 @@
widenUto32(mkexpr(resUS)))) );
/* Set NDEP even though it isn't used. This makes redundant-PUT
elimination of previous stores to this field work better. */
- stmt( IRStmt_Put( OFFB_CC_NDEP, mkU32(0) ));
+ stmt( IRStmt_Put( OFFB_CC_NDEP,
+ IRExpr_Mux0X( mkexpr(guard),
+ IRExpr_Get(OFFB_CC_NDEP,Ity_I32),
+ mkU32(0) )));
}
|