diff options
author | Timothy B. Terriberry <territim@amazon.com> | 2022-07-06 15:21:16 -0700 |
---|---|---|
committer | Timothy B. Terriberry <territim@amazon.com> | 2022-07-09 21:18:52 -0700 |
commit | 71fb707875b95672f0cd1cb153c890eff4219720 (patch) | |
tree | 6941d8cfd78c208462b00be70b9f1369efdc4905 /celt | |
parent | affb551e47052d5b9a0e37c681c816a6cf4159a7 (diff) | |
download | opus-71fb707875b95672f0cd1cb153c890eff4219720.tar.gz |
Don't compile x86 cpu detection without RTCD.
Also #error if RTCD is enabled without a detection method, like Arm.
A number of SILK functions also still used the lookup tables, even
when RTCD was disabled.
Fix those, too.
Diffstat (limited to 'celt')
-rw-r--r-- | celt/cpu_support.h | 5 | ||||
-rw-r--r-- | celt/x86/x86cpu.c | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/celt/cpu_support.h b/celt/cpu_support.h index 68fc6067..7b5c56ca 100644 --- a/celt/cpu_support.h +++ b/celt/cpu_support.h @@ -43,10 +43,11 @@ */ #define OPUS_ARCHMASK 3 -#elif (defined(OPUS_X86_MAY_HAVE_SSE) && !defined(OPUS_X86_PRESUME_SSE)) || \ +#elif defined(OPUS_HAVE_RTCD) && \ + ((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)) + (defined(OPUS_X86_MAY_HAVE_AVX) && !defined(OPUS_X86_PRESUME_AVX))) #include "x86/x86cpu.h" /* We currently support 5 x86 variants: diff --git a/celt/x86/x86cpu.c b/celt/x86/x86cpu.c index 7cfc8db5..6a1914de 100644 --- a/celt/x86/x86cpu.c +++ b/celt/x86/x86cpu.c @@ -35,11 +35,11 @@ #include "pitch.h" #include "x86cpu.h" -#if (defined(OPUS_X86_MAY_HAVE_SSE) && !defined(OPUS_X86_PRESUME_SSE)) || \ +#if defined(OPUS_HAVE_RTCD) && \ + ((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)) - + (defined(OPUS_X86_MAY_HAVE_AVX) && !defined(OPUS_X86_PRESUME_AVX))) #if defined(_MSC_VER) @@ -91,6 +91,9 @@ static void cpuid(unsigned int CPUInfo[4], unsigned int InfoType) what we want on CPUs that don't support CPUID. */ CPUInfo[3] = CPUInfo[2] = CPUInfo[1] = CPUInfo[0] = 0; } +#else +# error "Configured to use x86 RTCD, but no CPU detection method available. " \ + "Reconfigure with --disable-rtcd (or send patches)." #endif } |