From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8uZy-0003e6-9F for qemu-devel@nongnu.org; Wed, 07 Jan 2015 12:39:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8uZs-0004Vd-Jh for qemu-devel@nongnu.org; Wed, 07 Jan 2015 12:39:34 -0500 Received: from mail-wi0-x232.google.com ([2a00:1450:400c:c05::232]:32864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8uZs-0004VH-EI for qemu-devel@nongnu.org; Wed, 07 Jan 2015 12:39:28 -0500 Received: by mail-wi0-f178.google.com with SMTP id em10so2135082wid.11 for ; Wed, 07 Jan 2015 09:39:27 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 7 Jan 2015 18:39:11 +0100 Message-Id: <1420652355-31847-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 0/3] target-i386: rework how AVX/AVX512 registers are stored List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: ehabkost@redhat.com Right now, AVX and AVX512 registers are stored part in the SSE registers, part in separate fields that follow the XSAVE format. This series instead uses a single 512-bit field for each of the 32 registers. It makes the marshalling a bit more complicated but keeps the madness out of CPUX86State's public interface. Also, a hypothetical XSAVE implementation of TCG would probably need something like this too, and it could share most of the implementation with KVM's kvm_get_xsave/kvm_put_xsave wrappers. As a bonus, patch 1 fixes a real bug found while inspecting uses of xmm_regs. Paolo Paolo Bonzini (4): target-i386: fix movntsd on big-endian hosts target-i386: do not memcpy in and out of xmm_regs target-i386: use vmstate_offset_sub_array for AVX registers target-i386: make xmm_regs 512-bit wide include/migration/vmstate.h | 10 +++++++ target-i386/cpu.h | 68 +++++------------------------------------ target-i386/kvm.c | 62 +++++++++++++++++++++++++++----------- target-i386/machine.c | 73 +++++++++++++++++++++++---------------------- target-i386/translate.c | 11 +++---- 5 files changed, 106 insertions(+), 118 deletions(-) -- 1.8.3.1