From: Julian Seward Date: Fri, 20 Apr 2012 22:33:44 +0000 (+0000) Subject: Add a spec rule for NE after COPY. X-Git-Tag: svn/VALGRIND_3_8_1^2~182^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3de464273caab720a36ab88347b692cf272c356b;p=thirdparty%2Fvalgrind.git Add a spec rule for NE after COPY. git-svn-id: svn://svn.valgrind.org/vex/branches/TCHAIN@2295 --- diff --git a/VEX/priv/guest_arm_helpers.c b/VEX/priv/guest_arm_helpers.c index e588178e46..122d034c16 100644 --- a/VEX/priv/guest_arm_helpers.c +++ b/VEX/priv/guest_arm_helpers.c @@ -697,6 +697,18 @@ IRExpr* guest_arm_spechelper ( HChar* function_name, mkU32(1))); } + /*---------------- COPY ----------------*/ + + if (isU32(cond_n_op, (ARMCondNE << 4) | ARMG_CC_OP_COPY)) { + /* NE after COPY --> ((cc_dep1 >> ARMG_CC_SHIFT_Z) ^ 1) & 1 */ + return binop(Iop_And32, + binop(Iop_Xor32, + binop(Iop_Shr32, cc_dep1, + mkU8(ARMG_CC_SHIFT_Z)), + mkU32(1)), + mkU32(1)); + } + /*----------------- AL -----------------*/ /* A critically important case for Thumb code.