summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorJanne Grunau <janne-libav@jannau.net>2013-12-10 20:13:32 +0100
committerJanne Grunau <janne-libav@jannau.net>2014-01-15 12:05:09 +0100
commitb7b17ed66e199afc7246e642bf3b35c3f8eca217 (patch)
tree2bd123eca798d0ccfaf4c10cf4e41f5e7a847ed3 /configure
parent1e9265cd8f0821acbeca1db437be1361a3976b85 (diff)
aarch64: add cpuflags support for NEON and VFP
NEON and VFP are currently mandatory for all ARMv8 profiles. Both are handled as extensions as far as cpuflags are concerned. This is consistent with handling x86_64 which always has SSE2, but still handles it as an extension.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure17
1 files changed, 14 insertions, 3 deletions
diff --git a/configure b/configure
index 725b63a1f2..47b97a8a08 100755
--- a/configure
+++ b/configure
@@ -1543,8 +1543,8 @@ CMDLINE_APPEND="
armv5te_deps="arm"
armv6_deps="arm"
armv6t2_deps="arm"
-neon_deps="arm"
-vfp_deps="arm"
+neon_deps_any="aarch64 arm"
+vfp_deps_any="aarch64 arm"
vfpv3_deps="vfp"
map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
@@ -3596,7 +3596,14 @@ od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
check_inline_asm inline_asm_labels '"1:\n"'
-if enabled alpha; then
+if enabled aarch64; then
+ # internal assembler in clang 3.3 does not support this instruction
+ enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1'
+ enabled vfp && check_insn vfp 'fmadd d0, d0, d1, d2'
+
+ map 'enabled_any ${v}_external ${v}_inline || disable $v' $ARCH_EXT_LIST_ARM
+
+elif enabled alpha; then
check_cflags -mieee
@@ -4250,6 +4257,10 @@ if enabled x86; then
echo "EBX available ${ebx_available-no}"
echo "EBP available ${ebp_available-no}"
fi
+if enabled aarch64; then
+ echo "NEON enabled ${neon-no}"
+ echo "VFP enabled ${vfp-no}"
+fi
if enabled arm; then
echo "ARMv5TE enabled ${armv5te-no}"
echo "ARMv6 enabled ${armv6-no}"