1.1 --- a/src/cpu/x86/vm/vm_version_x86.hpp Thu Mar 12 10:37:46 2009 -0700 1.2 +++ b/src/cpu/x86/vm/vm_version_x86.hpp Fri Mar 13 11:35:17 2009 -0700 1.3 @@ -70,7 +70,9 @@ 1.4 dca : 1, 1.5 sse4_1 : 1, 1.6 sse4_2 : 1, 1.7 - : 11; 1.8 + : 2, 1.9 + popcnt : 1, 1.10 + : 8; 1.11 } bits; 1.12 }; 1.13 1.14 @@ -179,7 +181,8 @@ 1.15 CPU_SSSE3 = (1 << 9), 1.16 CPU_SSE4A = (1 << 10), 1.17 CPU_SSE4_1 = (1 << 11), 1.18 - CPU_SSE4_2 = (1 << 12) 1.19 + CPU_SSE4_2 = (1 << 12), 1.20 + CPU_POPCNT = (1 << 13) 1.21 } cpuFeatureFlags; 1.22 1.23 // cpuid information block. All info derived from executing cpuid with 1.24 @@ -290,6 +293,8 @@ 1.25 result |= CPU_SSE4_1; 1.26 if (_cpuid_info.std_cpuid1_ecx.bits.sse4_2 != 0) 1.27 result |= CPU_SSE4_2; 1.28 + if (_cpuid_info.std_cpuid1_ecx.bits.popcnt != 0) 1.29 + result |= CPU_POPCNT; 1.30 return result; 1.31 } 1.32 1.33 @@ -379,6 +384,7 @@ 1.34 static bool supports_ssse3() { return (_cpuFeatures & CPU_SSSE3)!= 0; } 1.35 static bool supports_sse4_1() { return (_cpuFeatures & CPU_SSE4_1) != 0; } 1.36 static bool supports_sse4_2() { return (_cpuFeatures & CPU_SSE4_2) != 0; } 1.37 + static bool supports_popcnt() { return (_cpuFeatures & CPU_POPCNT) != 0; } 1.38 // 1.39 // AMD features 1.40 //