This commit is contained in:
TriForceX
2019-09-25 20:51:37 -03:00
commit 6203ff3e7c
11215 changed files with 428258 additions and 0 deletions

View File

@@ -0,0 +1,222 @@
Make speex Thumb2 compatible
Patch written by Michael Hope from Linaro, available at
http://lists.xiph.org/pipermail/speex-dev/2010-November/008041.html.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Bernd: rebased for 1.2.0]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
diff --git a/libspeex/filters_arm4.h b/libspeex/filters_arm4.h
index 7a74042..6ec1f75 100644
--- a/libspeex/filters_arm4.h
+++ b/libspeex/filters_arm4.h
@@ -47,8 +47,10 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
"\tldr %4, [%0], #4 \n"
"\tcmp %4, %1 \n"
+ "\tit gt \n"
"\tmovgt %1, %4 \n"
"\tcmp %4, %3 \n"
+ "\tit lt \n"
"\tmovlt %3, %4 \n"
"\tsubs %2, %2, #1 \n"
@@ -56,6 +58,7 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
"\trsb %3, %3, #0 \n"
"\tcmp %1, %3 \n"
+ "\tit lt \n"
"\tmovlt %1, %3 \n"
: "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4),
"=r" (dead5), "=r" (dead6)
diff --git a/libspeex/fixed_arm4.h b/libspeex/fixed_arm4.h
index b6981ca..b6218ca 100644
--- a/libspeex/fixed_arm4.h
+++ b/libspeex/fixed_arm4.h
@@ -69,72 +69,90 @@ static inline short DIV32_16(int a, int b)
__asm__ __volatile__ (
"\teor %5, %0, %1\n"
"\tmovs %4, %0\n"
+ "\tit mi \n"
"\trsbmi %0, %0, #0 \n"
"\tmovs %4, %1\n"
+ "\tit mi \n"
"\trsbmi %1, %1, #0 \n"
"\tmov %4, #1\n"
"\tsubs %3, %0, %1, asl #14 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #14 \n"
"\tsubs %3, %0, %1, asl #13 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #13 \n"
"\tsubs %3, %0, %1, asl #12 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #12 \n"
"\tsubs %3, %0, %1, asl #11 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #11 \n"
"\tsubs %3, %0, %1, asl #10 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #10 \n"
"\tsubs %3, %0, %1, asl #9 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #9 \n"
"\tsubs %3, %0, %1, asl #8 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #8 \n"
"\tsubs %3, %0, %1, asl #7 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #7 \n"
"\tsubs %3, %0, %1, asl #6 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #6 \n"
"\tsubs %3, %0, %1, asl #5 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #5 \n"
"\tsubs %3, %0, %1, asl #4 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #4 \n"
"\tsubs %3, %0, %1, asl #3 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #3 \n"
"\tsubs %3, %0, %1, asl #2 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #2 \n"
"\tsubs %3, %0, %1, asl #1 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4, asl #1 \n"
"\tsubs %3, %0, %1 \n"
+ "\titt pl \n"
"\tmovpl %0, %3 \n"
"\torrpl %2, %2, %4 \n"
"\tmovs %5, %5, lsr #31 \n"
+ "\tit ne \n"
"\trsbne %2, %2, #0 \n"
: "=r" (dead1), "=r" (dead2), "=r" (res),
"=r" (dead3), "=r" (dead4), "=r" (dead5)
diff --git a/libspeex/fixed_arm5e.h b/libspeex/fixed_arm5e.h
index 9b4861c..bdadd02 100644
--- a/libspeex/fixed_arm5e.h
+++ b/libspeex/fixed_arm5e.h
@@ -97,72 +97,90 @@ static inline short DIV32_16(int a, int b)
__asm__ __volatile__ (
"\teor %5, %0, %1\n"
"\tmovs %4, %0\n"
+ "\tit mi \n"
"\trsbmi %0, %0, #0 \n"
"\tmovs %4, %1\n"
+ "\tit mi \n"
"\trsbmi %1, %1, #0 \n"
"\tmov %4, #1\n"
"\tsubs %3, %0, %1, asl #14 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #14 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #13 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #13 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #12 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #12 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #11 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #11 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #10 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #10 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #9 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #9 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #8 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #8 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #7 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #7 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #6 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #6 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #5 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #5 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #4 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #4 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #3 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #3 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #2 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #2 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1, asl #1 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4, asl #1 \n"
"\tmovpl %0, %3 \n"
"\tsubs %3, %0, %1 \n"
+ "\titt pl \n"
"\torrpl %2, %2, %4 \n"
"\tmovpl %0, %3 \n"
"\tmovs %5, %5, lsr #31 \n"
+ "\tit ne \n"
"\trsbne %2, %2, #0 \n"
: "=r" (dead1), "=r" (dead2), "=r" (res),
"=r" (dead3), "=r" (dead4), "=r" (dead5)

23
package/speex/Config.in Normal file
View File

@@ -0,0 +1,23 @@
config BR2_PACKAGE_SPEEX
bool "speex"
select BR2_PACKAGE_LIBOGG
help
Speex is an Open Source/Free Software patent-free
audio compression format designed for speech.
It can be used for Voice over IP
http://www.speex.org/
if BR2_PACKAGE_SPEEX
config BR2_PACKAGE_SPEEX_ARM4
bool
default y
depends on BR2_ARM_CPU_ARMV4
config BR2_PACKAGE_SPEEX_ARM5E
bool
default y
depends on BR2_arm && !BR2_PACKAGE_SPEEX_ARM4
endif

6
package/speex/speex.hash Normal file
View File

@@ -0,0 +1,6 @@
# From https://downloads.xiph.org/releases/speex/SHA256SUMS.txt
sha256 eaae8af0ac742dc7d542c9439ac72f1f385ce838392dc849cae4536af9210094 speex-1.2.0.tar.gz
# From https://downloads.xiph.org/releases/speex/MD5SUMS
md5 8ab7bb2589110dfaf0ed7fa7757dc49c speex-1.2.0.tar.gz
# Locally computed
sha256 671bb5d8fd3c6b05a2e831d90f978ac27965c92bd8ea6d16b3df76e3440c0e9f COPYING

35
package/speex/speex.mk Normal file
View File

@@ -0,0 +1,35 @@
################################################################################
#
# speex
#
################################################################################
SPEEX_VERSION = 1.2.0
SPEEX_SITE = https://downloads.xiph.org/releases/speex
SPEEX_LICENSE = BSD-3-Clause
SPEEX_LICENSE_FILES = COPYING
SPEEX_INSTALL_STAGING = YES
SPEEX_DEPENDENCIES = host-pkgconf libogg
SPEEX_CONF_OPTS = \
--enable-fixed-point
ifeq ($(BR2_PACKAGE_SPEEXDSP),y)
SPEEX_DEPENDENCIES += speexdsp
endif
ifeq ($(BR2_PACKAGE_SPEEX_ARM4),y)
SPEEX_CONF_OPTS += --enable-arm4-asm
endif
ifeq ($(BR2_PACKAGE_SPEEX_ARM5E),y)
SPEEX_CONF_OPTS += --enable-arm5e-asm
endif
define SPEEX_LIBTOOL_FIXUP
$(SED) 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $(@D)/libtool
$(SED) 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $(@D)/libtool
endef
SPEEX_POST_CONFIGURE_HOOKS += SPEEX_LIBTOOL_FIXUP
$(eval $(autotools-package))