зеркало из https://github.com/mozilla/gecko-dev.git
b=1042508 remove : of empty Clobber asm argument r=padenot
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 --HG-- extra : rebase_source : 6ca7768d5b30f67ff6827acc9a4fdc51a672bc1e
This commit is contained in:
Родитель
5a1e783dae
Коммит
ee8186f60a
|
@ -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"
|
|
@ -46,8 +46,7 @@ static inline int32_t saturate_32bit_to_16bit(int32_t a) {
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
asm ("ssat %[ret], #16, %[a]"
|
asm ("ssat %[ret], #16, %[a]"
|
||||||
: [ret] "=&r" (ret)
|
: [ret] "=&r" (ret)
|
||||||
: [a] "r" (a)
|
: [a] "r" (a));
|
||||||
: );
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -24,3 +24,4 @@ patch -p3 < outside-speex.patch
|
||||||
patch -p3 < simd-detect-runtime.patch
|
patch -p3 < simd-detect-runtime.patch
|
||||||
patch -p3 < set-skip-frac.patch
|
patch -p3 < set-skip-frac.patch
|
||||||
patch -p3 < hugemem.patch
|
patch -p3 < hugemem.patch
|
||||||
|
patch -p3 < remove-empty-asm-clobber.patch
|
||||||
|
|
Загрузка…
Ссылка в новой задаче