diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2019-09-16 11:34:28 +0000 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2019-10-09 12:55:10 -0700 |
commit | 601a098338a5c276a538d55bde516624aff99a49 (patch) | |
tree | 86d0dd751bcc860c6171167f308a548ff3dc75f5 /src/util/u_cpu_detect.c | |
parent | 7d5ad8e77e4e085d30debc832d401d1cd78fb8c3 (diff) |
util: detect NEON at runtime on FreeBSD
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Jan Beich <jbeich@FreeBSD.org>
Diffstat (limited to 'src/util/u_cpu_detect.c')
-rw-r--r-- | src/util/u_cpu_detect.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/util/u_cpu_detect.c b/src/util/u_cpu_detect.c index 387003d6cba..19b21b0aa44 100644 --- a/src/util/u_cpu_detect.c +++ b/src/util/u_cpu_detect.c @@ -56,6 +56,10 @@ #if defined(PIPE_OS_FREEBSD) || defined(PIPE_OS_DRAGONFLY) #include <sys/types.h> #include <sys/sysctl.h> +#if __has_include(<sys/auxv.h>) +#include <sys/auxv.h> +#define HAVE_ELF_AUX_INFO +#endif #endif #if defined(PIPE_OS_LINUX) @@ -362,6 +366,11 @@ check_os_arm_support(void) */ #if defined(__ARM_NEON) || defined(__ARM_NEON__) util_cpu_caps.has_neon = 1; +#elif defined(PIPE_OS_FREEBSD) && defined(HAVE_ELF_AUX_INFO) + unsigned long hwcap = 0; + elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap)); + if (hwcap & HWCAP_NEON) + util_cpu_caps.has_neon = 1; #elif defined(HAS_ANDROID_CPUFEATURES) AndroidCpuFamily cpu_family = android_getCpuFamily(); uint64_t cpu_features = android_getCpuFeatures(); |