From: Julian Seward Date: Fri, 6 May 2005 16:30:21 +0000 (+0000) Subject: Reinstate the specialisation rule which first exposed the bug fixed by X-Git-Tag: svn/VALGRIND_3_0_1^2~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b786c5305b8d30dad614a1ddb3fa1b20d7c963f3;p=thirdparty%2Fvalgrind.git Reinstate the specialisation rule which first exposed the bug fixed by r1167. git-svn-id: svn://svn.valgrind.org/vex/trunk@1168 --- diff --git a/VEX/priv/guest-amd64/ghelpers.c b/VEX/priv/guest-amd64/ghelpers.c index 272b8fdd07..abd672b1be 100644 --- a/VEX/priv/guest-amd64/ghelpers.c +++ b/VEX/priv/guest-amd64/ghelpers.c @@ -936,14 +936,13 @@ IRExpr* guest_amd64_spechelper ( HChar* function_name, /*---------------- SUBW ----------------*/ - // CAUSES xedit not to work - // if (isU64(cc_op, AMD64G_CC_OP_SUBW) && isU64(cond, AMD64CondZ)) { - // /* word sub/cmp, then Z --> test dst==src */ - // return unop(Iop_1Uto64, - // binop(Iop_CmpEQ16, - // unop(Iop_64to16,cc_dep1), - // unop(Iop_64to16,cc_dep2))); - // } + if (isU64(cc_op, AMD64G_CC_OP_SUBW) && isU64(cond, AMD64CondZ)) { + /* word sub/cmp, then Z --> test dst==src */ + return unop(Iop_1Uto64, + binop(Iop_CmpEQ16, + unop(Iop_64to16,cc_dep1), + unop(Iop_64to16,cc_dep2))); + } /*---------------- SUBB ----------------*/