diff options
Diffstat (limited to 'drivers/opus/celt/cpu_support.h')
-rw-r--r-- | drivers/opus/celt/cpu_support.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/drivers/opus/celt/cpu_support.h b/drivers/opus/celt/cpu_support.h index f682a1d19e..2507e1861e 100644 --- a/drivers/opus/celt/cpu_support.h +++ b/drivers/opus/celt/cpu_support.h @@ -31,8 +31,9 @@ #include "opus/opus_types.h" #include "opus/opus_defines.h" -#if defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_ASM) -#include "arm/armcpu.h" +#if defined(OPUS_HAVE_RTCD) && \ + (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#include "opus/celt/arm/armcpu.h" /* We currently support 4 ARM variants: * arch[0] -> ARMv4 @@ -42,6 +43,22 @@ */ #define OPUS_ARCHMASK 3 +#elif (defined(OPUS_X86_MAY_HAVE_SSE) && !defined(OPUS_X86_PRESUME_SSE)) || \ + (defined(OPUS_X86_MAY_HAVE_SSE2) && !defined(OPUS_X86_PRESUME_SSE2)) || \ + (defined(OPUS_X86_MAY_HAVE_SSE4_1) && !defined(OPUS_X86_PRESUME_SSE4_1)) || \ + (defined(OPUS_X86_MAY_HAVE_AVX) && !defined(OPUS_X86_PRESUME_AVX)) + +#include "opus/celt/x86/x86cpu.h" +/* We currently support 5 x86 variants: + * arch[0] -> non-sse + * arch[1] -> sse + * arch[2] -> sse2 + * arch[3] -> sse4.1 + * arch[4] -> avx + */ +#define OPUS_ARCHMASK 7 +int opus_select_arch(void); + #else #define OPUS_ARCHMASK 0 @@ -50,5 +67,4 @@ static OPUS_INLINE int opus_select_arch(void) return 0; } #endif - #endif |