]> git.proxmox.com Git - mirror_qemu.git/commit - target/i386/kvm.c
target-i386: make xmm_regs 512-bit wide
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 Oct 2014 07:50:21 +0000 (09:50 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 26 Jan 2015 11:22:44 +0000 (12:22 +0100)
commitb7711471f551aa4419f9d46a11121f48ced422da
tree4bbf6b6e20262ca030aaa7f5c2918f532594e63c
parenta03c3e90e11976fb147904d537457984bb938ce2
target-i386: make xmm_regs 512-bit wide

Right now, the AVX512 registers are split in many different fields:
xmm_regs for the low 128 bits of the first 16 registers, ymmh_regs
for the next 128 bits of the same first 16 registers, zmmh_regs
for the next 256 bits of the same first 16 registers, and finally
hi16_zmm_regs for the full 512 bits of the second 16 bit registers.

This makes it simple to move data in and out of the xsave region,
but would be a nightmare for a hypothetical TCG implementation and
leads to a proliferation of [XYZ]MM_[BWLSQD] macros.  Instead,
this patch marshals data manually from the xsave region to a single
32x512-bit array, simplifying the macro jungle and clarifying which
bits are in which vmstate subsection.

The migration format is unaffected.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target-i386/cpu.h
target-i386/kvm.c
target-i386/machine.c