From 6c65d88216ef5aba6a7ca5935bd3abdebb00968f Mon Sep 17 00:00:00 2001 From: Florian Krohm Date: Wed, 16 Nov 2011 03:54:12 +0000 Subject: [PATCH] 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 --- VEX/priv/host_ppc_isel.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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: { -- 2.47.2