aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiarhei Siamashka <siarhei.siamashka@gmail.com>2006-09-13 21:39:41 +0000
committerDiego Biurrun <diego@biurrun.de>2006-09-13 21:39:41 +0000
commit1839e854e578db14c96365c484f419f569a5954d (patch)
treea9179b9191a2f68d64142bc196302a21699ea0d2
parenta8678a3a7a31c5b076cb3e20ef16b13120e19dd5 (diff)
downloadffmpeg-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-xconfigure21
-rw-r--r--libavcodec/mpegaudiodec.c7
2 files changed, 21 insertions, 7 deletions
diff --git a/configure b/configure
index 9e1b6e375b..308e2f180b 100755
--- a/configure
+++ b/configure
@@ -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) \