From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eduardo Habkost Subject: [PULL 1/7] i386: correct cpu_x86_cpuid(0xd) Date: Tue, 30 Oct 2018 21:45:44 -0300 Message-ID: <20181031004550.15410-2-ehabkost@redhat.com> References: <20181031004550.15410-1-ehabkost@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Eduardo Habkost , kvm@vger.kernel.org, "Michael S. Tsirkin" , Sebastian Andrzej Siewior , Marcelo Tosatti , Paolo Bonzini , Richard Henderson To: Peter Maydell , qemu-devel@nongnu.org Return-path: In-Reply-To: <20181031004550.15410-1-ehabkost@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel2=m.gmane.org@nongnu.org Sender: "Qemu-devel" List-Id: kvm.vger.kernel.org From: Sebastian Andrzej Siewior Intel SDM says for CPUID function 0DH, sub-function 0: | =E2=80=A2 ECX enumerates the size (in bytes) required by the XSAVE inst= ruction for an | XSAVE area containing all the user state components supported by this | processor. | =E2=80=A2 EBX enumerates the size (in bytes) required by the XSAVE inst= ruction for an | XSAVE area containing all the user state components corresponding to = bits | currently set in XCR0. Signed-off-by: Sebastian Andrzej Siewior Message-Id: <20180928104319.3296-1-bigeasy@linutronix.de> Reviewed-by: Eduardo Habkost Signed-off-by: Eduardo Habkost --- target/i386/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1469a1be01..fe7c963e5e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4178,7 +4178,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index= , uint32_t count, *ecx =3D xsave_area_size(x86_cpu_xsave_components(cpu)); *eax =3D env->features[FEAT_XSAVE_COMP_LO]; *edx =3D env->features[FEAT_XSAVE_COMP_HI]; - *ebx =3D *ecx; + *ebx =3D xsave_area_size(env->xcr0); } else if (count =3D=3D 1) { *eax =3D env->features[FEAT_XSAVE]; } else if (count < ARRAY_SIZE(x86_ext_save_areas)) { --=20 2.18.0.rc1.1.g3f1ff2140 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47085) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHeeO-0000V2-4L for qemu-devel@nongnu.org; Tue, 30 Oct 2018 20:46:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHeeL-0006aX-27 for qemu-devel@nongnu.org; Tue, 30 Oct 2018 20:46:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50240) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gHeeK-0006Zj-Nf for qemu-devel@nongnu.org; Tue, 30 Oct 2018 20:46:20 -0400 From: Eduardo Habkost Date: Tue, 30 Oct 2018 21:45:44 -0300 Message-Id: <20181031004550.15410-2-ehabkost@redhat.com> In-Reply-To: <20181031004550.15410-1-ehabkost@redhat.com> References: <20181031004550.15410-1-ehabkost@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 1/7] i386: correct cpu_x86_cpuid(0xd) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell , qemu-devel@nongnu.org Cc: Paolo Bonzini , kvm@vger.kernel.org, Eduardo Habkost , Marcel Apfelbaum , Richard Henderson , "Michael S. Tsirkin" , Marcelo Tosatti , Sebastian Andrzej Siewior From: Sebastian Andrzej Siewior Intel SDM says for CPUID function 0DH, sub-function 0: | =E2=80=A2 ECX enumerates the size (in bytes) required by the XSAVE inst= ruction for an | XSAVE area containing all the user state components supported by this | processor. | =E2=80=A2 EBX enumerates the size (in bytes) required by the XSAVE inst= ruction for an | XSAVE area containing all the user state components corresponding to = bits | currently set in XCR0. Signed-off-by: Sebastian Andrzej Siewior Message-Id: <20180928104319.3296-1-bigeasy@linutronix.de> Reviewed-by: Eduardo Habkost Signed-off-by: Eduardo Habkost --- target/i386/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1469a1be01..fe7c963e5e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4178,7 +4178,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index= , uint32_t count, *ecx =3D xsave_area_size(x86_cpu_xsave_components(cpu)); *eax =3D env->features[FEAT_XSAVE_COMP_LO]; *edx =3D env->features[FEAT_XSAVE_COMP_HI]; - *ebx =3D *ecx; + *ebx =3D xsave_area_size(env->xcr0); } else if (count =3D=3D 1) { *eax =3D env->features[FEAT_XSAVE]; } else if (count < ARRAY_SIZE(x86_ext_save_areas)) { --=20 2.18.0.rc1.1.g3f1ff2140