diff options
author | Siarhei Siamashka <siarhei.siamashka@gmail.com> | 2006-09-13 21:39:41 +0000 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2006-09-13 21:39:41 +0000 |
commit | 1839e854e578db14c96365c484f419f569a5954d (patch) | |
tree | a9179b9191a2f68d64142bc196302a21699ea0d2 | |
parent | a8678a3a7a31c5b076cb3e20ef16b13120e19dd5 (diff) | |
download | ffmpeg-1839e854e578db14c96365c484f419f569a5954d.tar.gz |
Proper armv5te instructions support detection.
patch by Siarhei Siamashka, siarhei dot siamashka gmail com
Originally committed as revision 6246 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-x | configure | 21 | ||||
-rw-r--r-- | libavcodec/mpegaudiodec.c | 7 |
2 files changed, 21 insertions, 7 deletions
@@ -78,6 +78,7 @@ show_help(){ echo " --powerpc-perf-enable enable performance report on PPC" echo " (requires enabling PMC)" echo " --disable-mmx disable MMX usage" + echo " --disable-armv5te disable armv5te usage" echo " --disable-iwmmxt disable iwmmxt usage" echo " --disable-altivec disable AltiVec usage" echo " --disable-audio-oss disable OSS audio support [default=no]" @@ -345,6 +346,7 @@ cpu=`uname -m` tune="generic" powerpc_perf="no" mmx="default" +armv5te="default" iwmmxt="default" altivec="default" mmi="default" @@ -362,7 +364,7 @@ case "$cpu" in fi ;; # armv4l is a subset of armv5tel - armv4l|armv5tel) + arm|armv4l|armv5tel) cpu="armv4l" ;; alpha) @@ -719,6 +721,8 @@ for opt do ;; --disable-mmx) mmx="no" ;; + --disable-armv5te) armv5te="no" + ;; --disable-iwmmxt) iwmmxt="no" ;; --disable-altivec) altivec="no" @@ -999,6 +1003,16 @@ if test $mmx = "default"; then fi fi +# check armv5te instructions support +if test $armv5te = "default" -a $cpu = "armv4l"; then + armv5te=no + check_cc <<EOF && armv5te=yes + int main(void) { + __asm__ __volatile__ ("qadd r0, r0, r0"); + } +EOF +fi + # check iwmmxt support if test $iwmmxt = "default" -a $cpu = "armv4l"; then iwmmxt=no @@ -1526,6 +1540,7 @@ if test $cpu = "x86" -o $cpu = "x86_64"; then echo "3DNow! Builtins $mm3dnow" fi if test $cpu = "armv4l"; then + echo "ARMv5TE enabled $armv5te" echo "IWMMXT enabled $iwmmxt" fi if test $cpu = "mips"; then @@ -1711,6 +1726,10 @@ if test "$mm3dnow" = "yes" ; then echo "TARGET_BUILTIN_3DNOW=yes" >> config.mak echo "#define HAVE_MM3DNOW 1" >> $TMPH fi +if test "$armv5te" = "yes" ; then + echo "TARGET_ARMV5TE=yes" >> config.mak + echo "#define HAVE_ARMV5TE 1" >> $TMPH +fi if test "$iwmmxt" = "yes" ; then echo "TARGET_IWMMXT=yes" >> config.mak echo "#define HAVE_IWMMXT 1" >> $TMPH diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index e9c78332bc..d49ce66b11 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -27,11 +27,6 @@ #include "bitstream.h" #include "dsputil.h" -/* Assume that all Intel XScale processors support armv5 edsp instructions */ -#if defined(ARCH_ARMV4L) && defined (HAVE_IWMMXT) -#define ARCH_ARM5E -#endif - /* * TODO: * - in low precision mode, use more 16 bit multiplies in synth filter @@ -797,7 +792,7 @@ static inline int round_sample(int *sum) # define MULS(ra, rb) \ ({ int __rt; asm ("mullhw %0, %1, %2" : "=r" (__rt) : "r" (ra), "r" (rb)); __rt; }) -# elif defined(ARCH_ARM5E) +# elif defined(HAVE_ARMV5TE) /* signed 16x16 -> 32 multiply add accumulate */ # define MACS(rt, ra, rb) \ |