On 5/28/19 1:46 PM, David Hildenbrand wrote:
> FWIW, this seems to be the easiest way:
>
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index f0d9a6a36d..d363ae0fb3 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -66,7 +66,7 @@ struct CPUS390XState {
> * The floating point registers are part of the vector registers.
> * vregs[0][0] -> vregs[15][0] are 16 floating point registers
> */
> - CPU_DoubleU vregs[32][2]; /* vector registers */
> + CPU_DoubleU vregs[32][2] QEMU_ALIGNED(16); /* vector registers */
> uint32_t aregs[16]; /* access registers */
> uint8_t riccb[64]; /* runtime instrumentation control */
> uint64_t gscb[4]; /* guarded storage control */
>
>
> Makes it work for me again.
That's the right fix, and exactly the bug that I was hoping to find with
11e2bfef7990 ("tcg/i386: Use MOVDQA for TCG_TYPE_V128 load/store").
r~