mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 13:33:02 +08:00
Detect new CPU features using cpuid
Change-Id: Ie82e1ae4d21e758a0b27b59dd130793f6cf7d14f Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
d9d27cd4ed
commit
2213b8808f
@@ -49,6 +49,8 @@ struct CpuInfo {
|
||||
static const uint64_t featureSha = 0x800000000ULL;
|
||||
static const uint64_t featureMpx = 0x1000000000ULL;
|
||||
static const uint64_t featureClflush = 0x2000000000ULL;
|
||||
static const uint64_t featureTsc = 0x4000000000ULL;
|
||||
static const uint64_t featureRdtscp = 0x8000000000ULL;
|
||||
|
||||
CpuInfo() : features(featureNone) {
|
||||
}
|
||||
@@ -74,10 +76,18 @@ struct CpuInfo {
|
||||
features |= cpuInfo[3] & BIT(0) ? featureFpu : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(4) ? featureTsc : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(15) ? featureCmov : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(19) ? featureClflush : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(23) ? featureMmx : featureNone;
|
||||
}
|
||||
@@ -141,10 +151,6 @@ struct CpuInfo {
|
||||
{
|
||||
features |= cpuInfo[2] & BIT(30) ? featureRdrnd : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(19) ? featureClflush : featureNone;
|
||||
}
|
||||
}
|
||||
|
||||
if (numFunctionIds >= 7u) {
|
||||
@@ -175,6 +181,10 @@ struct CpuInfo {
|
||||
{
|
||||
features |= cpuInfo[2] & BIT(5) ? featureLzcnt : featureNone;
|
||||
}
|
||||
|
||||
{
|
||||
features |= cpuInfo[3] & BIT(27) ? featureRdtscp : featureNone;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user