https://bugs.kde.org/show_bug.cgi?id=492210

--- Comment #3 from Alexander Monakov <amona...@gmail.com> ---
The following patch helps. I'm quite unsure what the numbers in comments (like
"8," in the context visible here) are counting.

diff --git a/VEX/priv/guest_amd64_helpers.c b/VEX/priv/guest_amd64_helpers.c
index da1cabc3c..033167037 100644
--- a/VEX/priv/guest_amd64_helpers.c
+++ b/VEX/priv/guest_amd64_helpers.c
@@ -1098,6 +1098,13 @@ IRExpr* guest_amd64_spechelper ( const HChar*
function_name,
                            binop(Iop_Add64, cc_dep1, cc_dep2),
                            mkU64(0)));
       }
+      if (isU64(cc_op, AMD64G_CC_OP_ADDL) && isU64(cond, AMD64CondZ)) {
+         /* long add, then Z --> test ((int)(dst+src) == 0) */
+         return unop(Iop_1Uto64,
+                     binop(Iop_CmpEQ32,
+                           unop(Iop_64to32, binop(Iop_Add64, cc_dep1,
cc_dep2)),
+                           mkU32(0)));
+      }

       /* 8, */
       if (isU64(cc_op, AMD64G_CC_OP_ADDQ) && isU64(cond, AMD64CondS)) {

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to