summaryrefslogtreecommitdiff
path: root/src/arch/x86/cpuid.cc
diff options
context:
space:
mode:
authorAlexandru Dutu <alexandru.dutu@amd.com>2014-11-23 18:01:08 -0800
committerAlexandru Dutu <alexandru.dutu@amd.com>2014-11-23 18:01:08 -0800
commit335514dfdc63c6f8e34cc172e2582ceca548a07c (patch)
treefb78de2a719266a71c6cd23585dc3fda626820b4 /src/arch/x86/cpuid.cc
parent252a463b6beadd6c12afdaa4650fde08ee82067a (diff)
downloadgem5-335514dfdc63c6f8e34cc172e2582ceca548a07c.tar.xz
cpuid, x86: Enabling more features in CPUid
Adding more features in the CPUid with the purpose of supporting running the KvmCPU in SE mode.
Diffstat (limited to 'src/arch/x86/cpuid.cc')
-rw-r--r--src/arch/x86/cpuid.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/arch/x86/cpuid.cc b/src/arch/x86/cpuid.cc
index f3f9a82d7..de11195e0 100644
--- a/src/arch/x86/cpuid.cc
+++ b/src/arch/x86/cpuid.cc
@@ -96,8 +96,15 @@ namespace X86ISA {
stringToRegister(vendorString + 8));
break;
case FamilyModelSteppingBrandFeatures:
+ /** Features Enabling
+ * rdx, enabling most of the features except:
+ * FXSR, FFXSR, Page1GB in EDX
+ *
+ * rcx, disabling most of the features except:
+ * SSE4A, XOP, FMA4 in ECX
+ */
result = CpuidResult(0x00020f51, 0x00000405,
- 0xe3d3fbff, 0x00000001);
+ 0xe3d3fbff, 0x00010840);
break;
case NameString1:
case NameString2:
@@ -153,8 +160,15 @@ namespace X86ISA {
stringToRegister(vendorString + 8));
break;
case FamilyModelStepping:
+ /** Features Enabling
+ * rdx, enabling most of the features except:
+ * HTT in EDX
+ *
+ * rcx, disabling most of the features except:
+ * SSE3, SSSE3, FMA, SSE41, XSAVE, AVX in ECX
+ */
result = CpuidResult(0x00020f51, 0x00000805,
- 0xe7dbfbff, 0x00000001);
+ 0xe7dbfbff, 0x14081201);
break;
default:
warn("x86 cpuid: unimplemented function %u", funcNum);