diff --git a/Source/Core/Common/ArmCPUDetect.cpp b/Source/Core/Common/ArmCPUDetect.cpp index e17eb30f6b..aab1787ba6 100644 --- a/Source/Core/Common/ArmCPUDetect.cpp +++ b/Source/Core/Common/ArmCPUDetect.cpp @@ -239,8 +239,14 @@ void CPUInfo::Detect() if (GetCPUImplementer() == 0x51 && GetCPUPart() == 0x6F) // Krait(300) is 0x6F, Scorpion is 0x4D bIDIVa = bIDIVt = true; // These two require ARMv8 or higher +#ifdef _M_ARM_64 bFP = CheckCPUFeature("fp"); bASIMD = CheckCPUFeature("asimd"); + bAES = CheckCPUFeature("aes"); + bCRC32 = CheckCPUFeature("crc32"); + bSHA1 = CheckCPUFeature("sha1"); + bSHA2 = CheckCPUFeature("sha2"); +#endif #endif // On android, we build a separate library for ARMv7 so this is fine. // TODO: Check for ARMv7 on other platforms. diff --git a/Source/Core/Common/CPUDetect.h b/Source/Core/Common/CPUDetect.h index 28263ceeb2..dd4922750e 100644 --- a/Source/Core/Common/CPUDetect.h +++ b/Source/Core/Common/CPUDetect.h @@ -75,6 +75,9 @@ struct CPUInfo // ARMv8 specific bool bFP; bool bASIMD; + bool bCRC32; + bool bSHA1; + bool bSHA2; // Call Detect() explicit CPUInfo();