1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-15 14:13:16 +02:00

ppc: configure: Support ISA 2.06 and later

POWER 7 and POWER 8 support VSX and ldbrx.

POWER 8 supports additional extended VSX instructions introduced
with ISA 2.07.
This commit is contained in:
Luca Barbato
2015-05-10 02:47:31 +02:00
parent 3058872c29
commit f22ebd2555

28
configure vendored
View File

@@ -276,6 +276,8 @@ Advanced options (experts only):
Optimization options (experts only): Optimization options (experts only):
--disable-asm disable all assembly optimizations --disable-asm disable all assembly optimizations
--disable-altivec disable AltiVec optimizations --disable-altivec disable AltiVec optimizations
--disable-vsx disable VSX optimizations
--disable-power8 disable POWER8 optimizations
--disable-amd3dnow disable 3DNow! optimizations --disable-amd3dnow disable 3DNow! optimizations
--disable-amd3dnowext disable 3DNow! extended optimizations --disable-amd3dnowext disable 3DNow! extended optimizations
--disable-mmx disable MMX optimizations --disable-mmx disable MMX optimizations
@@ -1339,7 +1341,9 @@ ARCH_EXT_LIST_PPC="
altivec altivec
dcbzl dcbzl
ldbrx ldbrx
power8
ppc4xx ppc4xx
vsx
" "
ARCH_EXT_LIST_X86=" ARCH_EXT_LIST_X86="
@@ -1709,6 +1713,8 @@ map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
altivec_deps="ppc" altivec_deps="ppc"
ppc4xx_deps="ppc" ppc4xx_deps="ppc"
vsx_deps="altivec"
power8_deps="vsx"
cpunop_deps="i686" cpunop_deps="i686"
x86_64_select="i686" x86_64_select="i686"
@@ -3323,19 +3329,28 @@ elif enabled ppc; then
;; ;;
g4|745*|ppc745*|powerpc745*) g4|745*|ppc745*|powerpc745*)
cpuflags="-mcpu=7450" cpuflags="-mcpu=7450"
disable vsx
;; ;;
74*|ppc74*|powerpc74*) 74*|ppc74*|powerpc74*)
cpuflags="-mcpu=7400" cpuflags="-mcpu=7400"
disable vsx
;; ;;
g5|970|ppc970|powerpc970) g5|970|ppc970|powerpc970)
cpuflags="-mcpu=970" cpuflags="-mcpu=970"
disable vsx
;; ;;
power[3-7]*) power[3-6]*)
cpuflags="-mcpu=$cpu" cpuflags="-mcpu=$cpu"
disable vsx
;;
power[7-8]*)
cpuflags="-mcpu=$cpu"
enable ldbrx
;; ;;
cell) cell)
cpuflags="-mcpu=cell" cpuflags="-mcpu=cell"
enable ldbrx enable ldbrx
disable vsx
;; ;;
e500mc) e500mc)
cpuflags="-mcpu=e500mc" cpuflags="-mcpu=e500mc"
@@ -4012,6 +4027,15 @@ EOF
enabled altivec || warn "Altivec disabled, possibly missing --cpu flag" enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
fi fi
if enabled vsx; then
check_cflags -mvsx &&
check_builtin vec_vsx_ld "altivec.h" "__builtin_vec_vsx_ld" || disable vsx
fi
if enabled power8; then
check_cpp_condition "altivec.h" "defined(_ARCH_PWR8)" || disable power8
fi
elif enabled x86; then elif enabled x86; then
check_builtin rdtsc intrin.h "__rdtsc()" check_builtin rdtsc intrin.h "__rdtsc()"
@@ -4706,6 +4730,8 @@ if enabled arm; then
fi fi
if enabled ppc; then if enabled ppc; then
echo "AltiVec enabled ${altivec-no}" echo "AltiVec enabled ${altivec-no}"
echo "VSX enabled ${vsx-no}"
echo "POWER8 enabled ${power8-no}"
echo "PPC 4xx optimizations ${ppc4xx-no}" echo "PPC 4xx optimizations ${ppc4xx-no}"
echo "dcbzl available ${dcbzl-no}" echo "dcbzl available ${dcbzl-no}"
fi fi