From ea81e316737ad4ec1741eed0c92f7237090af508 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Tue, 14 Nov 2006 17:46:12 +0000 Subject: [PATCH] Add an %eflags rule for COPY-CondP. git-svn-id: svn://svn.valgrind.org/vex/trunk@1675 --- VEX/priv/guest-x86/ghelpers.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/VEX/priv/guest-x86/ghelpers.c b/VEX/priv/guest-x86/ghelpers.c index 9cfe7379b7..5ad6210aed 100644 --- a/VEX/priv/guest-x86/ghelpers.c +++ b/VEX/priv/guest-x86/ghelpers.c @@ -1161,6 +1161,23 @@ IRExpr* guest_x86_spechelper ( HChar* function_name, ); } + if (isU32(cc_op, X86G_CC_OP_COPY) && isU32(cond, X86CondP)) { + /* COPY, then P --> extract P from dep1, and test (P == 1). */ + return + unop( + Iop_1Uto32, + binop( + Iop_CmpNE32, + binop( + Iop_And32, + binop(Iop_Shr32, cc_dep1, mkU8(X86G_CC_SHIFT_P)), + mkU32(1) + ), + mkU32(0) + ) + ); + } + return NULL; } -- 2.47.2