summaryrefslogtreecommitdiffstats
path: root/media/libspeex_resampler/remove-empty-asm-clobber.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media/libspeex_resampler/remove-empty-asm-clobber.patch')
-rw-r--r--media/libspeex_resampler/remove-empty-asm-clobber.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/media/libspeex_resampler/remove-empty-asm-clobber.patch b/media/libspeex_resampler/remove-empty-asm-clobber.patch
new file mode 100644
index 0000000000..ebb6d66983
--- /dev/null
+++ b/media/libspeex_resampler/remove-empty-asm-clobber.patch
@@ -0,0 +1,33 @@
+https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended-Asm says
+
+ asm [volatile] ( AssemblerTemplate : [OutputOperands] [ : [InputOperands] [ : [Clobbers] ] ] )
+
+which implies that Clobbers is optional even after the third colon, but
+the gcc used for b2g_try_emulator_dep builds says
+
+resample_neon.c: In function 'saturate_32bit_to_16bit':
+resample_neon.c:50: error: expected string literal before ')' token
+
+diff --git a/media/libspeex_resampler/src/resample_neon.c b/media/libspeex_resampler/src/resample_neon.c
+--- a/media/libspeex_resampler/src/resample_neon.c
++++ b/media/libspeex_resampler/src/resample_neon.c
+@@ -41,18 +41,17 @@
+ #include <arm_neon.h>
+
+ #ifdef FIXED_POINT
+ #ifdef __thumb2__
+ static inline int32_t saturate_32bit_to_16bit(int32_t a) {
+ int32_t ret;
+ asm ("ssat %[ret], #16, %[a]"
+ : [ret] "=&r" (ret)
+- : [a] "r" (a)
+- : );
++ : [a] "r" (a));
+ return ret;
+ }
+ #else
+ static inline int32_t saturate_32bit_to_16bit(int32_t a) {
+ int32_t ret;
+ asm ("vmov.s32 d0[0], %[a]\n"
+ "vqmovn.s32 d0, q0\n"
+ "vmov.s16 %[ret], d0[0]\n"