configure: arm: check inline and external asm support for extensions
authorMans Rullgard <mans@mansr.com>
Sat, 1 Dec 2012 15:19:10 +0000 (15:19 +0000)
committerMans Rullgard <mans@mansr.com>
Fri, 7 Dec 2012 16:54:03 +0000 (16:54 +0000)
This tests instruction set support in both inline and external asm.
If both fail, the base config option is disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
configure

index 6758438..42975e1 100755 (executable)
--- a/configure
+++ b/configure
@@ -3152,12 +3152,14 @@ EOF
         warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
     fi
 
-    enabled armv5te && check_inline_asm armv5te '"qadd r0, r0, r0"'
-    enabled armv6   && check_inline_asm armv6   '"sadd16 r0, r0, r0"'
-    enabled armv6t2 && check_inline_asm armv6t2 '"movt r0, #0"'
-    enabled armvfp  && check_inline_asm armvfp  '"fadds s0, s0, s0"'
-    enabled neon    && check_inline_asm neon    '"vadd.i16 q0, q0, q0"'
-    enabled vfpv3   && check_inline_asm vfpv3   '"vmov.f32 s0, #1.0"'
+    enabled armv5te && check_insn armv5te 'qadd r0, r0, r0'
+    enabled armv6   && check_insn armv6   'sadd16 r0, r0, r0'
+    enabled armv6t2 && check_insn armv6t2 'movt r0, #0'
+    enabled armvfp  && check_insn armvfp  'fadds s0, s0, s0'
+    enabled neon    && check_insn neon    'vadd.i16 q0, q0, q0'
+    enabled vfpv3   && check_insn vfpv3   'vmov.f32 s0, #1.0'
+
+    map 'enabled_any ${v}_external ${v}_inline || disable $v' $ARCH_EXT_LIST_ARM
 
     check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
     check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'