]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Don't overwrite CC_NDEP in shift by zero. Fixes #269354.
authorJulian Seward <jseward@acm.org>
Sat, 26 Mar 2011 07:28:51 +0000 (07:28 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 26 Mar 2011 07:28:51 +0000 (07:28 +0000)
(Stephen McCamant, smcc@CS.Berkeley.EDU)

git-svn-id: svn://svn.valgrind.org/vex/trunk@2117

VEX/priv/guest_x86_toIR.c

index 10409580bc867c008a2c7ce0e0774a09c56a7631..dc6c81cce1ed271de829e09c3f75692c9673baeb 100644 (file)
@@ -998,7 +998,10 @@ static void setFlags_DEP1_DEP2_shift ( IROp    op32,
                                    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) )));
 }