s390x: Align vector registers to 16 bytes
authorDavid Hildenbrand <david@redhat.com>
Tue, 28 May 2019 18:46:57 +0000 (20:46 +0200)
committerDavid Hildenbrand <david@redhat.com>
Fri, 7 Jun 2019 12:53:25 +0000 (14:53 +0200)
11e2bfef7990 ("tcg/i386: Use MOVDQA for TCG_TYPE_V128 load/store")
revealed that the vregs are not aligned to 16 bytes. Align them to
16 bytes, to avoid segfault'ing on x86.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
target/s390x/cpu.h

index 7305cacc7b77e10b519d101d06361be1073699b2..1bed12b6c3e0794dba3113964ff2b2f06f236f53 100644 (file)
@@ -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 */