From 2ffe5de35c5b3838164832369cbbb1fdf7a8dd8f Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Sun, 27 Mar 2011 22:16:08 +0000 Subject: [PATCH] Add a spec rule for NS after LOGICB. Fixes #266990. git-svn-id: svn://svn.valgrind.org/vex/trunk@2118 --- VEX/priv/guest_amd64_helpers.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/VEX/priv/guest_amd64_helpers.c b/VEX/priv/guest_amd64_helpers.c index f626f0a8b1..cea850f423 100644 --- a/VEX/priv/guest_amd64_helpers.c +++ b/VEX/priv/guest_amd64_helpers.c @@ -1179,6 +1179,14 @@ IRExpr* guest_amd64_spechelper ( HChar* function_name, binop(Iop_Shr64,cc_dep1,mkU8(7)), mkU64(1)); } + if (isU64(cc_op, AMD64G_CC_OP_LOGICB) && isU64(cond, AMD64CondNS)) { + /* byte and/or/xor, then NS --> (UInt)!result[7] */ + return binop(Iop_Xor64, + binop(Iop_And64, + binop(Iop_Shr64,cc_dep1,mkU8(7)), + mkU64(1)), + mkU64(1)); + } /*---------------- INCB ----------------*/ -- 2.47.3