From: Carl Love Date: Tue, 23 Sep 2014 16:22:36 +0000 (+0000) Subject: The PPC64 store quad instruction is updating the address register with the X-Git-Tag: svn/VALGRIND_3_11_0^2~194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5f8cc2eacbf08ab93a48b4da1f68b64c21a0eac;p=thirdparty%2Fvalgrind.git The PPC64 store quad instruction is updating the address register with the effective address of the store. The instruction should not update the address register. The issue is due to the two putIReg() calls at the end of the instruction. The two putIReg() calls were removed to fix the bug. This issue was reported in bugzilla 339336. git-svn-id: svn://svn.valgrind.org/vex/trunk@2957 --- diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c index adabf64123..8c1e70a3f9 100644 --- a/VEX/priv/guest_ppc_toIR.c +++ b/VEX/priv/guest_ppc_toIR.c @@ -5350,9 +5350,7 @@ static Bool dis_int_store ( UInt theInstr, VexAbiInfo* vbi ) /* lower half of upper 64-bits */ assign( EA_lo, ea_rAor0_simm( rA_addr, simm16+12 ) ); } - putIReg( rA_addr, mkexpr(EA_hi) ); store( mkexpr(EA_hi), mkexpr(rS) ); - putIReg( rA_addr, mkexpr( EA_lo) ); store( mkexpr(EA_lo), getIReg( rS_addr+1 ) ); break; }