configure: Add check_x86asm() helper function to simplify some expressions

This commit is contained in:
Diego Biurrun 2017-10-21 01:07:34 +02:00
parent 17ee5b0c13
commit 8c7554e6a9

40
configure vendored
View File

@ -808,6 +808,18 @@ test_as(){
test_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS
}
x86asm_o(){
eval printf '%s\\n' $X86ASM_O
}
test_x86asm(){
log test_x86asm "$@"
echo "$1" > $TMPASM
log_file $TMPASM
shift
test_cmd $x86asmexe $X86ASMFLAGS "$@" $(x86asm_o $TMPO) $TMPASM
}
check_cmd(){
log check_cmd "$@"
cmd=$1
@ -844,16 +856,12 @@ check_insn(){
check_as ${1}_external "$2"
}
x86asm_o(){
eval printf '%s\\n' $X86ASM_O
}
test_x86asm(){
log test_x86asm "$@"
echo "$1" > $TMPASM
log_file $TMPASM
shift 1
test_cmd $x86asmexe $X86ASMFLAGS "$@" $(x86asm_o $TMPO) $TMPASM
check_x86asm(){
log check_x86asm "$@"
name=$1
shift
disable $name
test_x86asm "$@" && enable $name
}
ld_o(){
@ -4425,7 +4433,7 @@ EOF
X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)'
X86ASM_DEPFLAGS=
fi
test_x86asm "movbe ecx, [5]" && enable x86asm
check_x86asm x86asm "movbe ecx, [5]"
}
if ! disabled_any asm mmx x86asm; then
@ -4441,11 +4449,11 @@ EOF
elf*) enabled debug && append X86ASMFLAGS $x86asm_debug ;;
esac
test_x86asm "vextracti128 xmm0, ymm0, 0" || disable avx2_external
test_x86asm "vpmacsdd xmm0, xmm1, xmm2, xmm3" || disable xop_external
test_x86asm "vfmadd132ps ymm0, ymm1, ymm2" || disable fma3_external
test_x86asm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
test_x86asm "CPU amdnop" || disable cpunop
check_x86asm avx2_external "vextracti128 xmm0, ymm0, 0"
check_x86asm xop_external "vpmacsdd xmm0, xmm1, xmm2, xmm3"
check_x86asm fma3_external "vfmadd132ps ymm0, ymm1, ymm2"
check_x86asm fma4_external "vfmaddps ymm0, ymm1, ymm2, ymm3"
check_x86asm cpunop "CPU amdnop"
fi
case "$cpu" in