ARM: check for inline asm 'y' operand modifier support
authorMans Rullgard <mans@mansr.com>
Sun, 2 Oct 2011 22:38:32 +0000 (23:38 +0100)
committerMans Rullgard <mans@mansr.com>
Mon, 3 Oct 2011 07:56:24 +0000 (08:56 +0100)
The inline asm added in bf5d46d uses the 'y' modifier which
is only supported from gcc 4.5.  This check allows building
with older compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
configure
libavcodec/arm/dca.h

index 32f1a26..22735e7 100755 (executable)
--- a/configure
+++ b/configure
@@ -1042,6 +1042,7 @@ HAVE_LIST="
     alsa_asoundlib_h
     altivec_h
     arpa_inet_h
+    asm_mod_y
     attribute_may_alias
     attribute_packed
     bswap
@@ -2644,6 +2645,8 @@ EOF
     enabled neon    && check_asm neon    '"vadd.i16 q0, q0, q0"'
     enabled vfpv3   && check_asm vfpv3   '"vmov.f32 s0, #1.0"'
 
+    check_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
+
     enabled_all armv6t2 shared !pic && enable_pic
 
 elif enabled mips; then
index c4c024a..38c8d1f 100644 (file)
@@ -24,7 +24,7 @@
 #include <stdint.h>
 #include "config.h"
 
-#if HAVE_NEON && HAVE_INLINE_ASM
+#if HAVE_NEON && HAVE_INLINE_ASM && HAVE_ASM_MOD_Y
 
 #define int8x8_fmul_int32 int8x8_fmul_int32
 static inline void int8x8_fmul_int32(float *dst, const int8_t *src, int scale)