1
0
mirror of https://github.com/google/cpu_features.git synced 2025-04-27 23:22:31 +02:00

Support x86 DCA and SS features (#76)

* Add dca and ss features
* Remove trailing white spaces
This commit is contained in:
Artem Alekseev 2019-06-19 16:06:05 +03:00 committed by Guillaume Chatelet
parent 6482bad213
commit 3ee4a9e801
2 changed files with 14 additions and 0 deletions

View File

@ -76,6 +76,8 @@ typedef struct {
int movbe : 1;
int rdrnd : 1;
int dca : 1;
int ss : 1;
// Make sure to update X86FeaturesEnum below if you add a field here.
} X86Features;
@ -179,6 +181,8 @@ typedef enum {
X86_POPCNT,
X86_MOVBE,
X86_RDRND,
X86_DCA,
X86_SS,
X86_LAST_,
} X86FeaturesEnum;

View File

@ -151,9 +151,11 @@ static void ParseCpuId(const uint32_t max_cpuid_leaf, X86Info* info) {
features->cx8 = IsBitSet(leaf_1.edx, 8);
features->clfsh = IsBitSet(leaf_1.edx, 19);
features->mmx = IsBitSet(leaf_1.edx, 23);
features->ss = IsBitSet(leaf_1.edx, 27);
features->pclmulqdq = IsBitSet(leaf_1.ecx, 1);
features->smx = IsBitSet(leaf_1.ecx, 6);
features->cx16 = IsBitSet(leaf_1.ecx, 13);
features->dca = IsBitSet(leaf_1.ecx, 18);
features->movbe = IsBitSet(leaf_1.ecx, 22);
features->popcnt = IsBitSet(leaf_1.ecx, 23);
features->aes = IsBitSet(leaf_1.ecx, 25);
@ -430,6 +432,10 @@ int GetX86FeaturesEnumValue(const X86Features* features,
return features->movbe;
case X86_RDRND:
return features->rdrnd;
case X86_DCA:
return features->dca;
case X86_SS:
return features->ss;
case X86_LAST_:
break;
}
@ -536,6 +542,10 @@ const char* GetX86FeaturesEnumName(X86FeaturesEnum value) {
return "movbe";
case X86_RDRND:
return "rdrnd";
case X86_DCA:
return "dca";
case X86_SS:
return "ss";
case X86_LAST_:
break;
}