From: Florian Krohm Date: Wed, 16 Nov 2011 03:54:12 +0000 (+0000) Subject: Iop_1Uto64 was not handled in the ppc insn selector. X-Git-Tag: svn/VALGRIND_3_8_1^2~225 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c65d88216ef5aba6a7ca5935bd3abdebb00968f;p=thirdparty%2Fvalgrind.git Iop_1Uto64 was not handled in the ppc insn selector. Patch by Maynard Johnson (maynardj@us.ibm.com). Fixes #286374 git-svn-id: svn://svn.valgrind.org/vex/trunk@2233 --- diff --git a/VEX/priv/host_ppc_isel.c b/VEX/priv/host_ppc_isel.c index 642fc8186c..07b5854c10 100644 --- a/VEX/priv/host_ppc_isel.c +++ b/VEX/priv/host_ppc_isel.c @@ -1698,13 +1698,16 @@ static HReg iselWordExpr_R_wrk ( ISelEnv* env, IRExpr* e ) return rLo; /* similar stupid comment to the above ... */ } break; + case Iop_1Uto64: case Iop_1Uto32: - case Iop_1Uto8: { - HReg r_dst = newVRegI(env); - PPCCondCode cond = iselCondCode(env, e->Iex.Unop.arg); - addInstr(env, PPCInstr_Set(cond,r_dst)); - return r_dst; - } + case Iop_1Uto8: + if ((op_unop != Iop_1Uto64) || mode64) { + HReg r_dst = newVRegI(env); + PPCCondCode cond = iselCondCode(env, e->Iex.Unop.arg); + addInstr(env, PPCInstr_Set(cond,r_dst)); + return r_dst; + } + break; case Iop_1Sto8: case Iop_1Sto16: case Iop_1Sto32: {