mirror of https://github.com/wolfSSL/wolfssl
Update cpuid.c to optimize intelasm for performance
This commit is contained in:
parent
7a4da340d4
commit
59067825fc
|
@ -60,16 +60,26 @@
|
|||
static word32 cpuid_flag(word32 leaf, word32 sub, word32 num, word32 bit)
|
||||
{
|
||||
int got_intel_cpu = 0;
|
||||
int got_amd_cpu = 0;
|
||||
unsigned int reg[5];
|
||||
|
||||
reg[4] = '\0';
|
||||
cpuid(reg, 0, 0);
|
||||
|
||||
/* check for Intel cpu */
|
||||
if (XMEMCMP((char *)&(reg[EBX]), "Genu", 4) == 0 &&
|
||||
XMEMCMP((char *)&(reg[EDX]), "ineI", 4) == 0 &&
|
||||
XMEMCMP((char *)&(reg[ECX]), "ntel", 4) == 0) {
|
||||
got_intel_cpu = 1;
|
||||
}
|
||||
if (got_intel_cpu) {
|
||||
|
||||
/* check for AMD cpu */
|
||||
if (XMEMCMP((char *)&(reg[EBX]), "Auth", 4) == 0 &&
|
||||
XMEMCMP((char *)&(reg[EDX]), "enti", 4) == 0 &&
|
||||
XMEMCMP((char *)&(reg[ECX]), "cAMD", 4) == 0) {
|
||||
got_amd_cpu = 1;
|
||||
}
|
||||
|
||||
if (got_intel_cpu || got_amd_cpu) {
|
||||
cpuid(reg, leaf, sub);
|
||||
return ((reg[num] >> bit) & 0x1);
|
||||
}
|
||||
|
@ -98,4 +108,3 @@
|
|||
return cpuid_flags;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue