aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei Gang <gang.wei@intel.com>2011-02-09 08:58:11 +0000
committerWei Gang <gang.wei@intel.com>2011-02-09 08:58:11 +0000
commitaa479ce9d1295d153db641ead0d174d9ef9fffa8 (patch)
tree54d43136ffd9fc778572a9e4701ebdca0037bf4a
parent76bb33a03ee333e57b91620132df7a61c31c5097 (diff)
downloadxen-aa479ce9d1295d153db641ead0d174d9ef9fffa8.tar.gz
xen-aa479ce9d1295d153db641ead0d174d9ef9fffa8.tar.bz2
xen-aa479ce9d1295d153db641ead0d174d9ef9fffa8.zip
x86: reduce magic number usage in XSAVE code
Signed-off-by: Wei Gang <gang.wei@intel.com>
-rw-r--r--xen/arch/x86/hvm/hvm.c2
-rw-r--r--xen/arch/x86/i387.c1
-rw-r--r--xen/include/asm-x86/i387.h3
3 files changed, 3 insertions, 3 deletions
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 51cde88e24..ec71dfcef3 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2223,7 +2223,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
if ( count == 0 && v->arch.xcr0 )
{
/* reset EBX to default value first */
- *ebx = 576;
+ *ebx = XSAVE_AREA_MIN_SIZE;
for ( sub_leaf = 2; sub_leaf < 64; sub_leaf++ )
{
if ( !(v->arch.xcr0 & (1ULL << sub_leaf)) )
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 0b052349e3..5c96da0456 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -221,7 +221,6 @@ static void restore_fpu(struct vcpu *v)
}
#define XSTATE_CPUID 0xd
-#define XSAVE_AREA_MIN_SIZE (512 + 64) /* FP/SSE + XSAVE.HEADER */
/*
* Maximum size (in byte) of the XSAVE/XRSTOR save area required by all
diff --git a/xen/include/asm-x86/i387.h b/xen/include/asm-x86/i387.h
index 9be8206b82..2cbbbc40e9 100644
--- a/xen/include/asm-x86/i387.h
+++ b/xen/include/asm-x86/i387.h
@@ -21,13 +21,14 @@ void xsave_init(void);
int xsave_alloc_save_area(struct vcpu *v);
void xsave_free_save_area(struct vcpu *v);
+#define XSAVE_AREA_MIN_SIZE (512 + 64) /* FP/SSE + XSAVE.HEADER */
#define XSTATE_FP (1ULL << 0)
#define XSTATE_SSE (1ULL << 1)
#define XSTATE_YMM (1ULL << 2)
#define XSTATE_LWP (1ULL << 62) /* AMD lightweight profiling */
#define XSTATE_FP_SSE (XSTATE_FP | XSTATE_SSE)
#define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM | XSTATE_LWP)
-#define XSTATE_YMM_OFFSET (512 + 64)
+#define XSTATE_YMM_OFFSET XSAVE_AREA_MIN_SIZE
#define XSTATE_YMM_SIZE 256
#define XSAVEOPT (1 << 0)