|
- diff --git a/libaften/a52enc.c b/libaften/a52enc.c
- index 0d1dd65..a95ea0e 100644
- --- a/libaften/a52enc.c
- +++ b/libaften/a52enc.c
- @@ -309,19 +309,19 @@ static void
- select_mdct(A52Context *ctx)
- {
- #ifndef CONFIG_DOUBLE
- -#ifdef HAVE_SSE3
- +#if defined(HAVE_SSE3) && !defined(__aarch64__)
- if (cpu_caps_have_sse3()) {
- sse3_mdct_init(ctx);
- return;
- }
- #endif
- -#ifdef HAVE_SSE
- +#if defined(HAVE_SSE) && !defined(__aarch64__)
- if (cpu_caps_have_sse()) {
- sse_mdct_init(ctx);
- return;
- }
- #endif
- -#ifdef HAVE_ALTIVEC
- +#if defined(HAVE_ALTIVEC) && !defined(__aarch64__)
- if (cpu_caps_have_altivec()) {
- mdct_init_altivec(ctx);
- return;
- @@ -335,19 +335,19 @@ static void
- select_mdct_thread(A52ThreadContext *tctx)
- {
- #ifndef CONFIG_DOUBLE
- -#ifdef HAVE_SSE3
- +#if defined(HAVE_SSE3) && !defined(__aarch64__)
- if (cpu_caps_have_sse3()) {
- sse3_mdct_thread_init(tctx);
- return;
- }
- #endif
- -#ifdef HAVE_SSE
- +#if defined(HAVE_SSE) && !defined(__aarch64__)
- if (cpu_caps_have_sse()) {
- sse_mdct_thread_init(tctx);
- return;
- }
- #endif
- -#ifdef HAVE_ALTIVEC
- +#if defined(HAVE_ALTIVEC) && !defined(__aarch64__)
- if (cpu_caps_have_altivec()) {
- mdct_thread_init_altivec(tctx);
- return;
- diff --git a/libaften/exponent.c b/libaften/exponent.c
- index 137b930..956ad2e 100644
- --- a/libaften/exponent.c
- +++ b/libaften/exponent.c
- @@ -67,13 +67,13 @@ exponent_init(A52Context *ctx)
- }
- }
-
- -#ifdef HAVE_SSE2
- +#if defined(HAVE_SSE2) && !defined(__aarch64__)
- if (cpu_caps_have_sse2()) {
- ctx->process_exponents = sse2_process_exponents;
- return;
- }
- #endif /* HAVE_SSE2 */
- -#ifdef HAVE_MMX
- +#if defined(HAVE_MMX) && !defined(__aarch64__)
- if (cpu_caps_have_mmx()) {
- ctx->process_exponents = mmx_process_exponents;
- return;
- diff --git a/libaften/window.c b/libaften/window.c
- index f649b5f..f994a86 100644
- --- a/libaften/window.c
- +++ b/libaften/window.c
- @@ -78,7 +78,7 @@ kbd_window_init(A52Context *ctx, FLOAT alpha, FLOAT *window, int n, int iter)
- window[n-1-i] = window[i];
- }
- #ifndef CONFIG_DOUBLE
- -#ifdef HAVE_SSE
- +#if defined(HAVE_SSE) && !defined(__aarch64__)
- if (cpu_caps_have_sse()) {
- ctx->apply_a52_window = sse_apply_a52_window;
- return;
- diff --git a/libaften/x86/x86_cpu_caps.c b/libaften/x86/x86_cpu_caps.c
- index e5a50a8..07cb4fb 100644
- --- a/libaften/x86/x86_cpu_caps.c
- +++ b/libaften/x86/x86_cpu_caps.c
- @@ -37,7 +37,7 @@
- #define CYRIX_MMXEXT_BIT 24
-
-
- -#ifdef HAVE_CPU_CAPS_DETECTION
- +#if defined(HAVE_CPU_CAPS_DETECTION) && !defined(__aarch64__)
- #include "asm_support.h"
-
- // derived from loki_cpuinfo.c, 1997-98 by H. Dietz and R. Fisher
- @@ -122,7 +122,7 @@ void cpu_caps_detect(void)
- /* end compiled in SIMD routines */
-
- /* runtime detection */
- -#ifdef HAVE_CPU_CAPS_DETECTION
- +#if defined(HAVE_CPU_CAPS_DETECTION) && !defined(__aarch64__)
- {
- uint32_t caps1, caps2, caps3;
-
- diff --git a/libaften/x86/x86_mmx_exponent.c b/libaften/x86/x86_mmx_exponent.c
- index b9962f4..2ea545e 100644
- --- a/libaften/x86/x86_mmx_exponent.c
- +++ b/libaften/x86/x86_mmx_exponent.c
- @@ -27,6 +27,8 @@
- */
-
- #include "exponent_common.c"
- +
- +#ifndef __aarch64__
- #include "x86_simd_support.h"
-
- #include <mmintrin.h>
- @@ -366,3 +368,4 @@ mmx_process_exponents(A52ThreadContext *tctx)
- group_exponents(tctx);
- _mm_empty();
- }
- +#endif // !__aarch64__
- diff --git a/libaften/x86/x86_sse2_exponent.c b/libaften/x86/x86_sse2_exponent.c
- index 4abda29..32a41b5 100644
- --- a/libaften/x86/x86_sse2_exponent.c
- +++ b/libaften/x86/x86_sse2_exponent.c
- @@ -27,6 +27,8 @@
- */
-
- #include "exponent_common.c"
- +
- +#ifndef __aarch64__
- #include "x86_simd_support.h"
-
- #include <emmintrin.h>
- @@ -373,3 +375,4 @@ sse2_process_exponents(A52ThreadContext *tctx)
-
- group_exponents(tctx);
- }
- +#endif // !__aarch64__
- diff --git a/libaften/x86/x86_sse_mdct_common.c b/libaften/x86/x86_sse_mdct_common.c
- index 991edeb..e3287b0 100644
- --- a/libaften/x86/x86_sse_mdct_common.c
- +++ b/libaften/x86/x86_sse_mdct_common.c
- @@ -49,6 +49,7 @@
- #include "a52.h"
- #include "mdct.h"
-
- +#ifndef __aarch64__
- #include "x86_simd_support.h"
-
-
- @@ -683,3 +684,4 @@ mdct_256(A52ThreadContext *tctx, FLOAT *out, FLOAT *in)
- _mm_store_ps(out + j+4, XMM3);
- }
- }
- +#endif // !__aarch64__
- diff --git a/libaften/x86/x86_sse_mdct_common_init.c b/libaften/x86/x86_sse_mdct_common_init.c
- index 22bb058..4754a12 100644
- --- a/libaften/x86/x86_sse_mdct_common_init.c
- +++ b/libaften/x86/x86_sse_mdct_common_init.c
- @@ -49,6 +49,7 @@
- #include "a52.h"
- #include "mdct.h"
-
- +#ifndef __aarch64__
- #include "x86_simd_support.h"
- #include "x86_sse_mdct_common_init.h"
-
- @@ -408,3 +409,4 @@ sse_mdct_tctx_close(MDCTThreadContext *tmdct)
- if(tmdct->buffer1) aligned_free(tmdct->buffer1);
- }
- }
- +#endif // !__aarch64__
- diff --git a/libaften/x86/x86_sse_mdct_dummy.c b/libaften/x86/x86_sse_mdct_dummy.c
- index f95c5e4..3b95204 100644
- --- a/libaften/x86/x86_sse_mdct_dummy.c
- +++ b/libaften/x86/x86_sse_mdct_dummy.c
- @@ -20,6 +20,7 @@
- #include "x86_sse_mdct_common_init.h"
- #include "x86_sse_mdct_common.c"
-
- +#ifndef __aarch64__
- static void
- sse_mdct_close(A52Context *ctx)
- {
- @@ -65,3 +66,4 @@ sse_mdct_thread_init(A52ThreadContext *tctx)
- aligned_malloc(A52_NUM_BLOCKS * A52_MAX_CHANNELS * (256 + 512) * sizeof(FLOAT));
- alloc_block_buffers(tctx);
- }
- +#endif // !__aarch64__
- diff --git a/libaften/x86/x86_sse_window.c b/libaften/x86/x86_sse_window.c
- index b8c4ba2..9b323cb 100644
- --- a/libaften/x86/x86_sse_window.c
- +++ b/libaften/x86/x86_sse_window.c
- @@ -19,6 +19,7 @@
- *********************************************************************/
- #include "window.h"
-
- +#ifndef __aarch64__
- #include <xmmintrin.h>
-
- void
- @@ -33,3 +34,4 @@ sse_apply_a52_window(FLOAT *samples)
- _mm_store_ps(samples+i, input);
- }
- }
- +#endif // !__aarch64__
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index ba6f0f2..fc2fc45 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -179,7 +179,7 @@ IF(SVN_VERSION)
- ENDIF(SVN_VERSION)
-
- # do SIMD stuff
- -IF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64")
- +IF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64" OR APPLE)
- CHECK_MMX()
-
- IF(HAVE_MMX)
- @@ -231,7 +231,7 @@ IF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64")
- CHECK_CASTSI128()
- ENDIF(HAVE_SSE3)
- ENDIF(HAVE_MMX)
- -ENDIF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64")
- +ENDIF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64" OR APPLE)
-
- IF(CMAKE_SYSTEM_MACHINE MATCHES "Power Macintosh" OR CMAKE_SYSTEM_MACHINE MATCHES "ppc")
- CHECK_ALTIVEC()
|