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~