1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

configure: build fix for P5600 with mips code restructuring

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Shivraj Patil
2016-03-07 19:49:10 +05:30
committed by Michael Niedermayer
parent b59d06d5f4
commit 8ca2c872b6

225
configure vendored
View File

@@ -1685,6 +1685,7 @@ ARCH_EXT_LIST_ARM="
ARCH_EXT_LIST_MIPS=" ARCH_EXT_LIST_MIPS="
mipsfpu mipsfpu
mips32r2 mips32r2
mips32r5
mips64r2 mips64r2
mips32r6 mips32r6
mips64r6 mips64r6
@@ -2183,10 +2184,11 @@ mipsfpu_deps="mips"
mipsdsp_deps="mips" mipsdsp_deps="mips"
mipsdspr2_deps="mips" mipsdspr2_deps="mips"
mips32r2_deps="mips" mips32r2_deps="mips"
mips32r5_deps="mips"
mips32r6_deps="mips" mips32r6_deps="mips"
mips64r2_deps="mips" mips64r2_deps="mips"
mips64r6_deps="mips" mips64r6_deps="mips"
msa_deps="mips" msa_deps="mipsfpu"
mmi_deps="mips" mmi_deps="mips"
altivec_deps="ppc" altivec_deps="ppc"
@@ -4208,82 +4210,27 @@ elif enabled mips; then
cpuflags="-march=$cpu" cpuflags="-march=$cpu"
case $cpu in if [ "$cpu" != "generic" ]; then
24kc)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsfpu
disable mipsdsp
disable mipsdspr2
disable msa
;;
24kf*)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsdsp
disable mipsdspr2
disable msa
;;
24kec|34kc|1004kc)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsfpu
disable mipsdspr2
disable msa
;;
24kef*|34kf*|1004kf*)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsdspr2
disable msa
;;
74kc)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsfpu
disable msa
;;
74kf)
disable mips32r6
disable mips64r2
disable mips64r6
disable msa
;;
p5600)
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsdsp
disable mipsdspr2
check_cflags "-mtune=p5600" &&
check_cflags "-mfp64 -msched-weight -mload-store-pairs -funroll-loops" &&
add_asflags "-mfp64"
;;
i6400)
disable mips32r2 disable mips32r2
disable mips32r6 disable mips32r5
disable mips64r2 disable mips64r2
disable mips32r6
disable mips64r6
disable loongson2
disable loongson3
case $cpu in
24kc|24kf*|24kec|34kc|1004kc|24kef*|34kf*|1004kf*|74kc|74kf)
enable mips32r2
disable msa
;;
p5600|i6400)
disable mipsdsp disable mipsdsp
disable mipsdspr2 disable mipsdspr2
check_cflags "-mtune=i6400 -mabi=64" &&
check_cflags "-mfp64 -msched-weight -mload-store-pairs -funroll-loops" &&
check_ldflags "-mabi=64" &&
add_asflags "-mfp64"
;; ;;
loongson*) loongson*)
disable mips32r2 enable loongson2
disable mips32r6 enable loongson3
disable mips64r2
disable mips64r6
disable mipsfpu
disable mipsdsp
disable mipsdspr2
disable msa
enable local_aligned_8 local_aligned_16 local_aligned_32 enable local_aligned_8 local_aligned_16 local_aligned_32
enable simd_align_16 enable simd_align_16
enable fast_64bit enable fast_64bit
@@ -4303,24 +4250,51 @@ elif enabled mips; then
;; ;;
esac esac
;; ;;
generic)
# We do not disable anything. Is up to the user to disable
# the unwanted features.
;;
*) *)
# Unknown CPU. Disable everything. # Unknown CPU. Disable everything.
warn "unknown CPU. Disabling all MIPS optimizations." warn "unknown CPU. Disabling all MIPS optimizations."
disable mipsfpu disable mipsfpu
disable mips32r2
disable mips32r6
disable mips64r2
disable mips64r6
disable mipsdsp disable mipsdsp
disable mipsdspr2 disable mipsdspr2
disable msa disable msa
disable mmi
;; ;;
esac esac
case $cpu in
24kc)
disable mipsfpu
disable mipsdsp
disable mipsdspr2
;;
24kf*)
disable mipsdsp
disable mipsdspr2
;;
24kec|34kc|1004kc)
disable mipsfpu
disable mipsdspr2
;;
24kef*|34kf*|1004kf*)
disable mipsdspr2
;;
74kc)
disable mipsfpu
;;
p5600)
enable mips32r5
check_cflags "-mtune=p5600" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops"
;;
i6400)
enable mips64r6
check_cflags "-mtune=i6400 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops" && check_ldflags "-mabi=64"
;;
esac
else
# We do not disable anything. Is up to the user to disable the unwanted features.
warn 'generic cpu selected'
fi
elif enabled ppc; then elif enabled ppc; then
disable ldbrx disable ldbrx
@@ -5132,91 +5106,20 @@ elif enabled mips; then
# Enable minimum ISA based on selected options # Enable minimum ISA based on selected options
if enabled mips64; then if enabled mips64; then
if enabled mips64r6; then enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
check_ldflags "-mips64r6" && enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
add_cflags "-mips64r6" && disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
add_asflags "-mips64r6" &&
check_inline_asm mips64r6 '"dlsa $0, $0, $0, 1"' ||
disable mips64r6
fi
if disabled mips64r6 && enabled mips64r2; then
check_ldflags "-mips64r2" &&
add_cflags "-mips64r2" &&
add_asflags "-mips64r2" &&
check_inline_asm mips64r2 '"dext $0, $0, 0, 1"' ||
disable mips64r2
fi
if disabled mips64r6 && disabled mips64r2; then
check_ldflags "-mips64" &&
add_cflags "-mips64" &&
add_asflags "-mips64" &&
check_inline_asm mips64r1 '"daddi $0, $0, 0"' ||
disable mips64r1
fi
else else
if enabled mips32r6; then enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
check_ldflags "-mips32r6" && enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
add_cflags "-mips32r6" && enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
add_asflags "-mips32r6" && disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'
check_inline_asm mips32r6 '"aui $0, $0, 0"' ||
disable mips32r6
fi
if disabled mips32r6 && enabled mips32r2; then
check_ldflags "-mips32r2" &&
add_cflags "-mips32r2" &&
add_asflags "-mips32r2" &&
check_inline_asm mips32r2 '"ext $0, $0, 0, 1"' ||
disable mips32r2
fi
if disabled mips32r6 && disabled mips32r2; then
check_ldflags "-mips32" &&
add_cflags "-mips32" &&
add_asflags "-mips32" &&
check_inline_asm mips32r1 '"addi $0, $0, 0"' ||
disable mips32r1
fi
fi fi
# MIPS FPU enabled mipsfpu && check_inline_asm_flags mipsfpu '"cvt.d.l $f0, $f2"' '-mhard-float'
if enabled mipsfpu; then enabled mipsfpu && enabled msa && check_inline_asm_flags msa '"addvi.b $w0, $w1, 1"' '-mfp64 -mmsa' && check_header msa.h || disable msa
check_ldflags "-mhard-float" && enabled mipsdsp && check_inline_asm_flags mipsdsp '"addu.qb $t0, $t1, $t2"' '-mdsp'
add_cflags "-mhard-float" && enabled mipsdspr2 && check_inline_asm_flags mipsdspr2 '"absq_s.qb $t0, $t1"' '-mdspr2'
add_asflags "-mhard-float" &&
check_inline_asm mipsfpu '"cvt.d.l $f0, $f2"' ||
disable mipsfpu
fi
# MSA and DSP support require ISA revision level 2 or greater
if enabled mips32r2 || enabled mips64r2 || enabled mips32r6 || enabled mips64r6; then
# MSA must be used with -mfp64 and -mhard-float
if enabled mipsfpu; then
if enabled msa; then
check_ldflags "-mfp64 -mmsa" &&
add_cflags "-mfp64 -mmsa" &&
add_asflags "-mfp64 -mmsa" &&
check_inline_asm msa '"addvi.b $w0, $w1, 1"' &&
check_header msa.h ||
disable msa
fi
else
disable msa
fi
if enabled mipsdsp; then
check_ldflags "-mdsp" &&
add_cflags "-mdsp" &&
add_asflags "-mdsp" &&
check_inline_asm mipsdsp '"addu.qb $t0, $t1, $t2"' ||
disable mipsdsp
fi
if enabled mipsdspr2; then
check_ldflags "-mdspr2" &&
add_cflags "-mdspr2" &&
add_asflags "-mdspr2" &&
check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"' ||
disable mipsdspr2
fi
fi
elif enabled parisc; then elif enabled parisc; then