Commit a949882a98b0528e30f807432938ad3abd367a17

Ryan C. Gordon 2016-11-21T20:35:59

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

diff --git a/src/cpuinfo/SDL_cpuinfo.c b/src/cpuinfo/SDL_cpuinfo.c
index 69de2be..c8b0ba7 100644
--- a/src/cpuinfo/SDL_cpuinfo.c
+++ b/src/cpuinfo/SDL_cpuinfo.c
@@ -333,13 +333,12 @@ CPU_haveNEON(void)
 #if defined(SDL_CPUINFO_DISABLED) || !defined(__ARM_ARCH)
     return 0;  /* disabled or not an ARM CPU at all. */
 #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__)
-    /* all hardware that runs iOS 5 and later support NEON, but check anyhow */
-    int neon = 0;
-    size_t length = sizeof (neon);
-    const int error = sysctlbyname("hw.optional.neon", &neon, &length, NULL, 0);
-    return (!error) && (neon != 0);
+    return 0;  /* assune anything else from Apple doesn't have NEON. */
 #elif (defined(__LINUX__) || defined(__ANDROID__)) && defined(HAVE_GETAUXVAL)
     return ((getauxval(AT_HWCAP) & HWCAP_NEON) == HWCAP_NEON);
 #elif (defined(__LINUX__) || defined(__ANDROID__))