Commit 1839e854 authored by Siarhei Siamashka's avatar Siarhei Siamashka Committed by Diego Biurrun

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
parent a8678a3a
......@@ -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
......
......@@ -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) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment