summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <cboesch@gopro.com>2017-02-02 11:22:04 +0100
committerClément Bœsch <cboesch@gopro.com>2017-02-02 11:22:04 +0100
commita0860b0a388d5471ae3e60fbf004509a3783f392 (patch)
treeceeb6795d0d649b9cef796fbc5fc79655be622d8
parentd30870cc730337b7017cc194d696f68ee48f7f1d (diff)
parent6f9e34baea4f6f484392e4e67f606a0835d07b73 (diff)
Merge commit '6f9e34baea4f6f484392e4e67f606a0835d07b73'
* commit '6f9e34baea4f6f484392e4e67f606a0835d07b73': arm: Check for support for the .fpu directive Merged-by: Clément Bœsch <cboesch@gopro.com>
-rwxr-xr-xconfigure4
-rw-r--r--libavutil/arm/asm.S10
-rw-r--r--tests/checkasm/arm/checkasm.S2
3 files changed, 13 insertions, 3 deletions
diff --git a/configure b/configure
index 7154142006..b22c8b3389 100755
--- a/configure
+++ b/configure
@@ -1993,6 +1993,7 @@ SYSTEM_FUNCS="
TOOLCHAIN_FEATURES="
as_dn_directive
+ as_fpu_directive
as_func
as_object_arch
asm_mod_q
@@ -5312,6 +5313,9 @@ EOF
ra .dn d0.i16
.unreq ra
EOF
+ check_as <<EOF && enable as_fpu_directive
+.fpu neon
+EOF
# llvm's integrated assembler supports .object_arch from llvm 3.5
[ "$objformat" = elf ] && check_as <<EOF && enable as_object_arch
diff --git a/libavutil/arm/asm.S b/libavutil/arm/asm.S
index b0a6e50a3d..f4882899ee 100644
--- a/libavutil/arm/asm.S
+++ b/libavutil/arm/asm.S
@@ -40,6 +40,12 @@
# define FUNC @
#endif
+#if HAVE_AS_FPU_DIRECTIVE
+# define FPU
+#else
+# define FPU @
+#endif
+
#if HAVE_NEON
.arch armv7-a
#elif HAVE_ARMV6T2
@@ -54,11 +60,11 @@ ELF .object_arch armv4
#endif
#if HAVE_NEON
- .fpu neon
+FPU .fpu neon
ELF .eabi_attribute 10, 0 @ suppress Tag_FP_arch
ELF .eabi_attribute 12, 0 @ suppress Tag_Advanced_SIMD_arch
#elif HAVE_VFP
- .fpu vfp
+FPU .fpu vfp
ELF .eabi_attribute 10, 0 @ suppress Tag_FP_arch
#endif
diff --git a/tests/checkasm/arm/checkasm.S b/tests/checkasm/arm/checkasm.S
index 0cbf32e57f..e6b16509ea 100644
--- a/tests/checkasm/arm/checkasm.S
+++ b/tests/checkasm/arm/checkasm.S
@@ -24,7 +24,7 @@
/* override fpu so that NEON instructions are rejected */
#if HAVE_VFP
-.fpu vfp
+FPU .fpu vfp
ELF .eabi_attribute 10, 0 @ suppress Tag_FP_arch
#endif