Commit 43b73d59 authored by Diego Biurrun's avatar Diego Biurrun

configure: x86: Separate inline from standalone assembler capabilities

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