diff options
author | Richard Henderson <rth@twiddle.net> | 2015-07-02 15:21:23 +0100 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2016-02-13 07:59:59 +1100 |
commit | c9cfe8f9fb21f086e24b3a8f7ccd9c06e4d8d9d6 (patch) | |
tree | 802459173e6c82c15335ed7626b1c1b6c4682046 /target-i386/cpu.c | |
parent | 19dc85dba23c0db1ca932c62e453c37e00761628 (diff) |
target-i386: Implement XSAVEOPT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-i386/cpu.c')
-rw-r--r-- | target-i386/cpu.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index fb8a646a20..dcc6e9ca5e 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -366,7 +366,9 @@ static const char *cpuid_6_feature_name[] = { #define TCG_7_0_ECX_FEATURES 0 #define TCG_APM_FEATURES 0 #define TCG_6_EAX_FEATURES CPUID_6_EAX_ARAT - +#define TCG_XSAVE_FEATURES (CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XGETBV1) + /* missing: + CPUID_XSAVE_XSAVEC, CPUID_XSAVE_XSAVES */ typedef struct FeatureWordInfo { const char **feat_names; @@ -440,7 +442,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { .cpuid_eax = 0xd, .cpuid_needs_ecx = true, .cpuid_ecx = 1, .cpuid_reg = R_EAX, - .tcg_features = 0, + .tcg_features = TCG_XSAVE_FEATURES, }, [FEAT_6_EAX] = { .feat_names = cpuid_6_feature_name, |