From 3a3b782f3cf57464fb1e44f7925fb759cc1e0efb Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 8 Jun 2015 01:20:24 -0500 Subject: [PATCH] [AArch64] Detect AES/SHA1/SHA2/CRC32 in CPUDetect. --- Source/Core/Common/ArmCPUDetect.cpp | 6 ++++++ Source/Core/Common/CPUDetect.h | 3 +++ 2 files changed, 9 insertions(+) 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();