From: Julian Seward Date: Wed, 18 Aug 2004 00:28:48 +0000 (+0000) Subject: Generate 'test' rather than 'and' for some 32-to-1 casts. X-Git-Tag: svn/VALGRIND_3_0_1^2~1160 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f43d138b1a24ae08c5a8ea684d5dfd0a0d511ab1;p=thirdparty%2Fvalgrind.git Generate 'test' rather than 'and' for some 32-to-1 casts. git-svn-id: svn://svn.valgrind.org/vex/trunk@174 --- diff --git a/VEX/priv/host-x86/isel.c b/VEX/priv/host-x86/isel.c index 1dca90d499..d876bd5c41 100644 --- a/VEX/priv/host-x86/isel.c +++ b/VEX/priv/host-x86/isel.c @@ -766,10 +766,8 @@ static X86CondCode iselCondCode ( ISelEnv* env, IRExpr* e ) unop(Iop_32to1,bind(0)) ); if (matchIRExpr(&mi,p_32to1,e)) { - HReg src = iselIntExpr_R(env, mi.bindee[0]); - HReg dst = newVRegI(env); - addInstr(env, mk_MOVsd_RR(src,dst)); - addInstr(env, X86Instr_Alu32R(Xalu_AND,X86RMI_Imm(1),dst)); + X86RM* rm = iselIntExpr_RM(env, mi.bindee[0]); + addInstr(env, X86Instr_Test32(X86RI_Imm(1),rm)); return Xcc_NZ; }