]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
x86/xsave: simplify xcomp_bv initialization
authorJan Beulich <jbeulich@suse.com>
Thu, 14 Jan 2016 09:42:53 +0000 (10:42 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 14 Jan 2016 09:42:53 +0000 (10:42 +0100)
This simplifies a number of pointless conditionals: Bits 0 and 1 of
xcomp_bv don't matter anyway, and as long as none of bits 2..62 are
set, setting bit 63 is pointless too unless XSAVES is in use.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/domain.c
xen/arch/x86/hvm/hvm.c
xen/arch/x86/i387.c

index 159d9606901e6146ab7a35bf3c2dab49a523013d..e70c12532a4a68e0b82640cce3cce824323a09a4 100644 (file)
@@ -922,9 +922,8 @@ int arch_set_info_guest(
         if ( v->arch.xsave_area )
         {
             v->arch.xsave_area->xsave_hdr.xstate_bv = XSTATE_FP_SSE;
-            if ( cpu_has_xsaves || cpu_has_xsavec )
-                v->arch.xsave_area->xsave_hdr.xcomp_bv = XSTATE_FP_SSE |
-                                                         XSTATE_COMPACTION_ENABLED;
+            v->arch.xsave_area->xsave_hdr.xcomp_bv =
+                cpu_has_xsaves ? XSTATE_COMPACTION_ENABLED : 0;
         }
     }
     else if ( v->arch.xsave_area )
index 922754a1621414a417be122eb814c4789a860396..a99edc23926c7ab9a0bba93d8b832939878f46ab 100644 (file)
@@ -2110,9 +2110,8 @@ static int hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
             struct xsave_struct *xsave_area = v->arch.xsave_area;
 
             xsave_area->xsave_hdr.xstate_bv = XSTATE_FP_SSE;
-            if ( cpu_has_xsaves || cpu_has_xsavec )
-                xsave_area->xsave_hdr.xcomp_bv = XSTATE_FP_SSE |
-                                                 XSTATE_COMPACTION_ENABLED;
+            xsave_area->xsave_hdr.xcomp_bv =
+                cpu_has_xsaves ? XSTATE_COMPACTION_ENABLED : 0;
         }
     }
 
@@ -5476,9 +5475,8 @@ void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs, uint16_t ip)
     if ( v->arch.xsave_area )
     {
         v->arch.xsave_area->xsave_hdr.xstate_bv = XSTATE_FP;
-        if ( cpu_has_xsaves || cpu_has_xsavec )
-            v->arch.xsave_area->xsave_hdr.xcomp_bv = XSTATE_FP |
-                                                     XSTATE_COMPACTION_ENABLED;
+        v->arch.xsave_area->xsave_hdr.xcomp_bv =
+            cpu_has_xsaves ? XSTATE_COMPACTION_ENABLED : 0;
     }
 
     v->arch.vgc_flags = VGCF_online;
index 9c292117fcacc5ee16a624b1a5c3f9dd443b8f55..331a401d0149482937cb2db0a342642d49cd85a6 100644 (file)
@@ -272,7 +272,7 @@ int vcpu_init_fpu(struct vcpu *v)
     if ( v->arch.xsave_area )
     {
         v->arch.fpu_ctxt = &v->arch.xsave_area->fpu_sse;
-        if ( cpu_has_xsaves || cpu_has_xsavec )
+        if ( cpu_has_xsaves )
             v->arch.xsave_area->xsave_hdr.xcomp_bv = XSTATE_COMPACTION_ENABLED;
     }
     else