Dirk Mueller
0ed966f036
- drop: valgrind-3.9.0-merge.patches.from.Paul.McKenney.patch, valgrind-3.9.0-ppc64le-abiv2.patch - add: VEX-r2803.diff, VEX-r2808.diff, VEX-r2816.diff VEX-r2904.diff, VEX-r2910.diff, VEX-r2914.diff, VEX-r2915.diff, VEX-r2916.diff, r13767.diff, r13770.diff, r14184.diff, r14238.diff, r14239.diff, r14240.diff, r14246.diff OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=114
29 lines
1.3 KiB
Diff
29 lines
1.3 KiB
Diff
--- VEX/priv/guest_ppc_toIR.c (Revision 2807)
|
|
+++ VEX/priv/guest_ppc_toIR.c (Revision 2808)
|
|
@@ -5233,6 +5233,7 @@ static Bool dis_int_ldst_mult ( UInt the
|
|
|
|
Int simm16 = extend_s_16to32(uimm16);
|
|
IRType ty = mode64 ? Ity_I64 : Ity_I32;
|
|
+ IROp mkAdd = mode64 ? Iop_Add64 : Iop_Add32;
|
|
IRTemp EA = newTemp(ty);
|
|
UInt r = 0;
|
|
UInt ea_off = 0;
|
|
@@ -5248,7 +5249,7 @@ static Bool dis_int_ldst_mult ( UInt the
|
|
}
|
|
DIP("lmw r%u,%d(r%u)\n", rD_addr, simm16, rA_addr);
|
|
for (r = rD_addr; r <= 31; r++) {
|
|
- irx_addr = binop(Iop_Add32, mkexpr(EA), mkU32(ea_off));
|
|
+ irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
|
|
putIReg( r, mkWidenFrom32(ty, loadBE(Ity_I32, irx_addr ),
|
|
False) );
|
|
ea_off += 4;
|
|
@@ -5258,7 +5259,7 @@ static Bool dis_int_ldst_mult ( UInt the
|
|
case 0x2F: // stmw (Store Multiple Word, PPC32 p527)
|
|
DIP("stmw r%u,%d(r%u)\n", rS_addr, simm16, rA_addr);
|
|
for (r = rS_addr; r <= 31; r++) {
|
|
- irx_addr = binop(Iop_Add32, mkexpr(EA), mkU32(ea_off));
|
|
+ irx_addr = binop(mkAdd, mkexpr(EA), mode64 ? mkU64(ea_off) : mkU32(ea_off));
|
|
storeBE( irx_addr, mkNarrowTo32(ty, getIReg(r)) );
|
|
ea_off += 4;
|
|
}
|