|
|
|
@ -373,6 +373,12 @@ map(){ |
|
|
|
|
for v; do eval $m; done |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
add_suffix(){ |
|
|
|
|
suffix=$1 |
|
|
|
|
shift |
|
|
|
|
for v; do echo ${v}${suffix}; done |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
set_all(){ |
|
|
|
|
value=$1 |
|
|
|
|
shift |
|
|
|
@ -1101,6 +1107,8 @@ HAVE_LIST_PUB=' |
|
|
|
|
|
|
|
|
|
HAVE_LIST=" |
|
|
|
|
$ARCH_EXT_LIST |
|
|
|
|
$(add_suffix _external $ARCH_EXT_LIST) |
|
|
|
|
$(add_suffix _inline $ARCH_EXT_LIST) |
|
|
|
|
$HAVE_LIST_PUB |
|
|
|
|
$THREADS_LIST |
|
|
|
|
aligned_malloc |
|
|
|
@ -1351,6 +1359,17 @@ sse42_deps="sse4" |
|
|
|
|
avx_deps="sse42" |
|
|
|
|
fma4_deps="avx" |
|
|
|
|
|
|
|
|
|
mmx_external_deps="yasm" |
|
|
|
|
mmx_inline_deps="inline_asm" |
|
|
|
|
mmx_suggest="mmx_external mmx_inline" |
|
|
|
|
|
|
|
|
|
for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do |
|
|
|
|
eval dep=\$${ext}_deps |
|
|
|
|
eval ${ext}_external_deps='"${dep}_external"' |
|
|
|
|
eval ${ext}_inline_deps='"${dep}_inline"' |
|
|
|
|
eval ${ext}_suggest='"${ext}_external ${ext}_inline"' |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
aligned_stack_if_any="ppc x86" |
|
|
|
|
fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" |
|
|
|
|
fast_clz_if_any="alpha armv5te avr32 mips ppc x86" |
|
|
|
@ -2964,8 +2983,8 @@ EOF |
|
|
|
|
check_inline_asm xmm_clobbers '"":::"%xmm0"' |
|
|
|
|
|
|
|
|
|
# check whether binutils is new enough to compile SSSE3/MMXEXT |
|
|
|
|
enabled ssse3 && check_inline_asm ssse3 '"pabsw %xmm0, %xmm0"' |
|
|
|
|
enabled mmxext && check_inline_asm mmxext '"pmaxub %mm0, %mm1"' |
|
|
|
|
enabled ssse3 && check_inline_asm ssse3_inline '"pabsw %xmm0, %xmm0"' |
|
|
|
|
enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"' |
|
|
|
|
|
|
|
|
|
if ! disabled_any asm mmx yasm; then |
|
|
|
|
if check_cmd $yasmexe --version; then |
|
|
|
@ -2986,8 +3005,8 @@ EOF |
|
|
|
|
|
|
|
|
|
check_yasm "pextrd [eax], xmm0, 1" && enable yasm || |
|
|
|
|
die "yasm not found, use --disable-yasm for a crippled build" |
|
|
|
|
check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx |
|
|
|
|
check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4 |
|
|
|
|
check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx_external |
|
|
|
|
check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external |
|
|
|
|
check_yasm "CPU amdnop" && enable cpunop |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|