Browse Source

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

tags/n4.0
Diego Biurrun 8 years ago
parent
commit
8c7554e6a9
1 changed files with 24 additions and 16 deletions
  1. +24
    -16
      configure

+ 24
- 16
configure View File

@@ -808,6 +808,18 @@ test_as(){
test_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS 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(){ check_cmd(){
log check_cmd "$@" log check_cmd "$@"
cmd=$1 cmd=$1
@@ -844,16 +856,12 @@ check_insn(){
check_as ${1}_external "$2" 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(){ ld_o(){
@@ -4425,7 +4433,7 @@ EOF
X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)' X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)'
X86ASM_DEPFLAGS= X86ASM_DEPFLAGS=
fi fi
test_x86asm "movbe ecx, [5]" && enable x86asm
check_x86asm x86asm "movbe ecx, [5]"
} }


if ! disabled_any asm mmx x86asm; then if ! disabled_any asm mmx x86asm; then
@@ -4441,11 +4449,11 @@ EOF
elf*) enabled debug && append X86ASMFLAGS $x86asm_debug ;; elf*) enabled debug && append X86ASMFLAGS $x86asm_debug ;;
esac 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 fi


case "$cpu" in case "$cpu" in


Loading…
Cancel
Save