From: Julian Seward Date: Thu, 23 Feb 2012 07:36:43 +0000 (+0000) Subject: Add a spec rule for SUBQ/NBE. X-Git-Tag: svn/VALGRIND_3_8_1^2~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6637bfa44f6f38c6b515f961118e6f25cbed1ec5;p=thirdparty%2Fvalgrind.git Add a spec rule for SUBQ/NBE. git-svn-id: svn://svn.valgrind.org/vex/trunk@2261 --- diff --git a/VEX/priv/guest_amd64_helpers.c b/VEX/priv/guest_amd64_helpers.c index f8ee0b31d9..022edaa057 100644 --- a/VEX/priv/guest_amd64_helpers.c +++ b/VEX/priv/guest_amd64_helpers.c @@ -954,6 +954,14 @@ IRExpr* guest_amd64_spechelper ( HChar* function_name, return unop(Iop_1Uto64, binop(Iop_CmpLE64U, cc_dep1, cc_dep2)); } + if (isU64(cc_op, AMD64G_CC_OP_SUBQ) && isU64(cond, AMD64CondNBE)) { + /* long long sub/cmp, then NBE (unsigned greater than) + --> test !(dst <=u src) */ + return binop(Iop_Xor64, + unop(Iop_1Uto64, + binop(Iop_CmpLE64U, cc_dep1, cc_dep2)), + mkU64(1)); + } /*---------------- SUBL ----------------*/