]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add a spec rule for SUBQ/NBE.
authorJulian Seward <jseward@acm.org>
Thu, 23 Feb 2012 07:36:43 +0000 (07:36 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 23 Feb 2012 07:36:43 +0000 (07:36 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2261

VEX/priv/guest_amd64_helpers.c

index f8ee0b31d94b783eec4edc391b5df28caff74d8c..022edaa0570c48da5caf2bac60f1209850a25c76 100644 (file)
@@ -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 ----------------*/