target/ppc: Fix vsum2sws
A recent cleanup changed the pre zeroing of the result from 64 bit to 32 bit operations: - result.u64[i] = 0; + result.VsrW(i) = 0; This corrupts the result. Fixes:stable-4.060594fea29
("target/ppc: remove various HOST_WORDS_BIGENDIAN hacks in int_helper.c") Signed-off-by: Anton Blanchard <anton@ozlabs.org> Message-Id: <20190507004811.29968-9-anton@ozlabs.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> (upstream commit7fa0ddc1d6
) Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
parent
da3bd13802
commit
b6159fc9a6
|
@ -2030,7 +2030,7 @@ void helper_vsum2sws(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
|||
for (i = 0; i < ARRAY_SIZE(r->u64); i++) {
|
||||
int64_t t = (int64_t)b->VsrSW(upper + i * 2);
|
||||
|
||||
result.VsrW(i) = 0;
|
||||
result.VsrD(i) = 0;
|
||||
for (j = 0; j < ARRAY_SIZE(r->u64); j++) {
|
||||
t += a->VsrSW(2 * i + j);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue