diff options
author | Victor Khimenko <khim@google.com> | 2016-06-04 04:24:15 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-04 04:24:15 +0000 |
commit | 232858ab359c214c2b0006f298531ce8565acf08 (patch) | |
tree | 56b357ada73f6ec18b5413b62665306bd916d977 | |
parent | b4d981b5e461ac3287205746b3bfed9b700f79fd (diff) | |
parent | 0313b5aedbb4fb6e9bbc05f15dbca874b5e69cec (diff) | |
download | libopus-232858ab359c214c2b0006f298531ce8565acf08.tar.gz |
Fix NEON and SSE handling am: da5155b2f5
am: 0313b5aedb
* commit '0313b5aedbb4fb6e9bbc05f15dbca874b5e69cec':
Fix NEON and SSE handling
Change-Id: Iaa076031931a62b2f7332ae3af5e1052e7504480
-rw-r--r-- | Android.mk | 43 |
1 files changed, 27 insertions, 16 deletions
@@ -19,31 +19,42 @@ LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED \ -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O2 -fno-math-errno LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -O2 -funroll-loops -ifneq ($(findstring $(TARGET_ARCH_ABI), armeabi-v7a arm64-v8a),) -LOCAL_SRC_FILES += $(CELT_SOURCES_ARM) $(CELT_SOURCES_ARM_NEON_INTR) -LOCAL_SRC_FILES += celt/arm/armopts_gnu.s.neon -LOCAL_SRC_FILES += $(subst .s,_gnu.s.neon,$(CELT_SOURCES_ARM_ASM)) -LOCAL_ARM_NEON := true -LOCAL_CFLAGS += -DOPUS_ARM_ASM -DOPUS_ARM_INLINE_ASM -DOPUS_ARM_INLINE_EDSP \ - -DOPUS_ARM_INLINE_MEDIA -DOPUS_ARM_INLINE_NEON \ - -DOPUS_ARM_MAY_HAVE_NEON -DOPUS_ARM_MAY_HAVE_MEDIA \ - -DOPUS_ARM_MAY_HAVE_EDSP -DOPUS_ARM_MAY_HAVE_NEON_INTR \ - -DOPUS_HAVE_RTCD -DOPUS_ARM_PRESUME_EDSP \ - -DOPUS_ARM_PRESUME_MEDIA -DOPUS_ARM_PRESUME_NEON +# Note: OPUS enhanced DSP/NEON implementation is not yet compatible with arm64. +# Only add the appropriate defines for 32-bit arm architecture. +LOCAL_SRC_FILES_arm += $(CELT_SOURCES_ARM) +LOCAL_CFLAGS_arm += -DOPUS_ARM_ASM -DOPUS_ARM_INLINE_ASM \ + -DOPUS_ARM_MAY_HAVE_EDSP -DOPUS_ARM_PRESUME_EDSP \ + -DOPUS_ARM_INLINE_EDSP -DOPUS_ARM_MAY_HAVE_MEDIA \ + -DOPUS_ARM_PRESUME_MEDIA -DOPUS_ARM_INLINE_MEDIA \ + -DOPUS_HAVE_RTCD +# DSP, MEDIA and NEON instructions are in the same assembler file - thus we +# need to include it even if NEON is not supported on target platform. +LOCAL_SRC_FILES_arm += $(subst .s,_gnu.s,$(CELT_SOURCES_ARM_ASM)) +ifeq ($(ARCH_ARM_HAVE_NEON),true) +LOCAL_SRC_FILES_arm += $(CELT_SOURCES_ARM_NEON_INTR) +LOCAL_CFLAGS_arm += -DOPUS_ARM_MAY_HAVE_NEON -DOPUS_ARM_MAY_HAVE_NEON_INTR \ + -DOPUS_ARM_PRESUME_NEON -DOPUS_ARM_INLINE_NEON endif +LIBOPUS_X86_FILES := +LIBOPUS_X86_CFLAGS := ifeq ($(ARCH_X86_HAVE_SSSE3),true) -LOCAL_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE -DOPUS_X86_PRESUME_SSE \ - -DOPUS_X86_MAY_HAVE_SSE2 -DOPUS_X86_PRESUME_SSE2 -LOCAL_SRC_FILES += $(CELT_SOURCES_SSE) $(CELT_SOURCES_SSE2) +LIBOPUS_X86_FILES += $(CELT_SOURCES_SSE) $(CELT_SOURCES_SSE2) +LIBOPUS_X86_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE -DOPUS_X86_PRESUME_SSE \ + -DOPUS_X86_MAY_HAVE_SSE2 -DOPUS_X86_PRESUME_SSE2 endif ifeq ($(ARCH_X86_HAVE_SSE4_1),true) -LOCAL_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE4_1 -DOPUS_X86_PRESUME_SSE4_1 -LOCAL_SRC_FILES += $(CELT_SOURCES_SSE4_1) \ +LIBOPUS_X86_FILES += $(CELT_SOURCES_SSE4_1) \ $(SILK_SOURCES_SSE4_1) $(SILK_SOURCES_FIXED_SSE4_1) +LIBOPUS_X86_CFLAGS += -DOPUS_X86_MAY_HAVE_SSE4_1 -DOPUS_X86_PRESUME_SSE4_1 endif +LOCAL_SRC_FILES_x86 += $(LIBOPUS_X86_FILES) +LOCAL_SRC_FILES_x86_64 += $(LIBOPUS_X86_FILES) +LOCAL_CFLAGS_x86 += $(LIBOPUS_X86_CFLAGS) +LOCAL_CFLAGS_x86_64 += $(LIBOPUS_X86_CFLAGS) + LOCAL_STATIC_LIBRARIES := libogg include $(BUILD_SHARED_LIBRARY) |