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:
parent
6482bad213
commit
3ee4a9e801
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user