ref: e9b243b32a7d2e85b0dcfb9704c507bb59f8a3cf
parent: b6fd9aaa0da2a700c2d0dca87f9fe6e02d4a94e8
author: Michael Klingbeil <klingm@amazon.com>
date: Thu Feb 29 11:13:46 EST 2024
add arm rtcd for apple Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
--- a/celt/arm/armcpu.c
+++ b/celt/arm/armcpu.c
@@ -164,6 +164,33 @@
}
return flags;
}
+
+#elif defined(__APPLE__)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+
+opus_uint32 opus_cpu_capabilities(void)
+{+ opus_uint32 flags = 0;
+
+#if defined(OPUS_ARM_MAY_HAVE_DOTPROD)
+ size_t size = sizeof(uint32_t);
+ uint32_t value = 0;
+ if (!sysctlbyname("hw.optional.arm.FEAT_DotProd", &value, &size, NULL, 0) && value)+ {+ flags |= OPUS_CPU_ARM_DOTPROD_FLAG;
+ }
+#endif
+
+#if defined(OPUS_ARM_PRESUME_AARCH64_NEON_INTR)
+ flags |= OPUS_CPU_ARM_EDSP_FLAG | OPUS_CPU_ARM_MEDIA_FLAG | OPUS_CPU_ARM_NEON_FLAG;
+# if defined(OPUS_ARM_PRESUME_DOTPROD)
+ flags |= OPUS_CPU_ARM_DOTPROD_FLAG;
+# endif
+#endif
+ return flags;
+}
+
#else
/* The feature registers which can tell us what the processor supports are
* accessible in priveleged modes only, so we can't have a general user-space
--
⑨