commit 321771ee63740333ad355244e0764295218843b8 Author: Mark Wielaard Date: Sun Dec 9 14:26:39 2018 +0100 memcheck: Allow unaligned loads of 128bit vectors on ppc64[le]. On powerpc partial unaligned loads of vectors from partially invalid addresses are OK and could be generated by our translation of lxvd2x. Adjust partial_load memcheck tests to allow partial loads of 16 byte vectors on powerpc64. Part of resolving bug #386945. diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c index 737f79d..101916b 100644 --- a/memcheck/mc_main.c +++ b/memcheck/mc_main.c @@ -1354,6 +1354,9 @@ void mc_LOADV_128_or_256_slow ( /*OUT*/ULong* res, tl_assert(szB == 16); // s390 doesn't have > 128 bit SIMD /* OK if all loaded bytes are from the same page. */ Bool alignedOK = ((a & 0xfff) <= 0x1000 - szB); +# elif defined(VGA_ppc64be) || defined(VGA_ppc64le) + /* lxvd2x might generate an unaligned 128 bit vector load. */ + Bool alignedOK = (szB == 16); # else /* OK if the address is aligned by the load size. */ Bool alignedOK = (0 == (a & (szB - 1)));