|
From: <sv...@va...> - 2014-09-23 16:22:47
|
Author: carll
Date: Tue Sep 23 16:22:36 2014
New Revision: 2957
Log:
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.
Modified:
trunk/priv/guest_ppc_toIR.c
Modified: trunk/priv/guest_ppc_toIR.c
==============================================================================
--- trunk/priv/guest_ppc_toIR.c (original)
+++ trunk/priv/guest_ppc_toIR.c Tue Sep 23 16:22:36 2014
@@ -5350,9 +5350,7 @@
/* 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;
}
|