From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnWQ3-0000bx-5o for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:46:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bnWQ1-0003pa-DP for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:45:58 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56400) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnWQ1-0003pQ-6w for qemu-devel@nongnu.org; Fri, 23 Sep 2016 15:45:57 -0400 From: Eduardo Habkost Date: Fri, 23 Sep 2016 16:45:33 -0300 Message-Id: <1474659936-978-5-git-send-email-ehabkost@redhat.com> In-Reply-To: <1474659936-978-1-git-send-email-ehabkost@redhat.com> References: <1474659936-978-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH 4/7] target-i386: xsave: Simplify CPUID[0xD, 0].{EAX, EDX} calculation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Richard Henderson , Igor Mammedov Instead of assigning individual bits in a loop, just copy the values from ena_mask. Signed-off-by: Eduardo Habkost --- target-i386/cpu.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 9968581..7e66003 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2523,15 +2523,11 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, for (i = 2; i < ARRAY_SIZE(x86_ext_save_areas); i++) { const ExtSaveArea *esa = &x86_ext_save_areas[i]; if ((ena_mask >> i) & 1) { - if (i < 32) { - *eax |= 1u << i; - } else { - *edx |= 1u << (i - 32); - } *ecx = MAX(*ecx, esa->offset + esa->size); } } - *eax |= ena_mask & (XSTATE_FP_MASK | XSTATE_SSE_MASK); + *eax = ena_mask; + *edx = ena_mask >> 32; *ebx = *ecx; } else if (count == 1) { *eax = env->features[FEAT_XSAVE]; -- 2.7.4