|
From: <sv...@va...> - 2011-07-07 14:03:03
|
Author: sewardj
Date: 2011-07-07 14:58:10 +0100 (Thu, 07 Jul 2011)
New Revision: 2169
Log:
Add a spec rule for NZ after LOGICQ, whilst chasing after a strange
interaction between Memcheck and Clang-generated code.
Modified:
trunk/priv/guest_amd64_helpers.c
Modified: trunk/priv/guest_amd64_helpers.c
===================================================================
--- trunk/priv/guest_amd64_helpers.c 2011-07-05 02:48:39 UTC (rev 2168)
+++ trunk/priv/guest_amd64_helpers.c 2011-07-07 13:58:10 UTC (rev 2169)
@@ -1126,6 +1126,11 @@
return unop(Iop_1Uto64,
binop(Iop_CmpEQ64, cc_dep1, mkU64(0)));
}
+ if (isU64(cc_op, AMD64G_CC_OP_LOGICQ) && isU64(cond, AMD64CondNZ)) {
+ /* long long and/or/xor, then NZ --> test dst!=0 */
+ return unop(Iop_1Uto64,
+ binop(Iop_CmpNE64, cc_dep1, mkU64(0)));
+ }
if (isU64(cc_op, AMD64G_CC_OP_LOGICQ) && isU64(cond, AMD64CondL)) {
/* long long and/or/xor, then L
|