cpuinfo: fix SDL_HasNEON() on older iOS devices, fixed C++ comment.

Ryan C. Gordon 2016-11-21 20:35:59 -05:00
parent 3615633571
commit a949882a98
1 changed files with 5 additions and 6 deletions

View File

@ -333,13 +333,12 @@ CPU_haveNEON(void)
#if defined(SDL_CPUINFO_DISABLED) || !defined(__ARM_ARCH) #if defined(SDL_CPUINFO_DISABLED) || !defined(__ARM_ARCH)
return 0; /* disabled or not an ARM CPU at all. */ return 0; /* disabled or not an ARM CPU at all. */
#elif __ARM_ARCH >= 8 #elif __ARM_ARCH >= 8
return 1; // ARMv8 always has non-optional NEON support. return 1; /* ARMv8 always has non-optional NEON support. */
#elif defined(__APPLE__) && (__ARM_ARCH >= 7)
/* (note that sysctlbyname("hw.optional.neon") doesn't work!) */
return 1; /* all Apple ARMv7 chips and later have NEON. */
#elif defined(__APPLE__) #elif defined(__APPLE__)
/* all hardware that runs iOS 5 and later support NEON, but check anyhow */ return 0; /* assune anything else from Apple doesn't have NEON. */
int neon = 0;
size_t length = sizeof (neon);
const int error = sysctlbyname("hw.optional.neon", &neon, &length, NULL, 0);
return (!error) && (neon != 0);
#elif (defined(__LINUX__) || defined(__ANDROID__)) && defined(HAVE_GETAUXVAL) #elif (defined(__LINUX__) || defined(__ANDROID__)) && defined(HAVE_GETAUXVAL)
return ((getauxval(AT_HWCAP) & HWCAP_NEON) == HWCAP_NEON); return ((getauxval(AT_HWCAP) & HWCAP_NEON) == HWCAP_NEON);
#elif (defined(__LINUX__) || defined(__ANDROID__)) #elif (defined(__LINUX__) || defined(__ANDROID__))