aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Oliver <protogonoi@gmail.com>2014-03-18 15:29:14 +1100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-18 23:37:50 +0100
commitb2d3a45598ef8f8aaee489541c6914f960e53db4 (patch)
tree8e2949e3100bc0fe95803f42f126fc666f754fc5
parent37c07d45290cf9cdad061cd5c2af94a2783ba847 (diff)
downloadffmpeg-b2d3a45598ef8f8aaee489541c6914f960e53db4.tar.gz
avcodec/x86/mlpdsp: Only use asm when non-local inline asm lables are supported
This is part of the patch-set for intel C inline asm on windows support Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure3
-rw-r--r--libavcodec/x86/mlpdsp.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/configure b/configure
index 8b67be7ff4..3939cfa63e 100755
--- a/configure
+++ b/configure
@@ -1690,6 +1690,7 @@ TOOLCHAIN_FEATURES="
gnu_windres
ibm_asm
inline_asm_labels
+ inline_asm_nonlocal_labels
pragma_deprecated
rsync_contimeout
symver_asm_label
@@ -4178,6 +4179,8 @@ od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
check_inline_asm inline_asm_labels '"1:\n"'
+check_inline_asm inline_asm_nonlocal_labels '"Label:\n"'
+
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'
diff --git a/libavcodec/x86/mlpdsp.c b/libavcodec/x86/mlpdsp.c
index 94849b7e79..b473625fb7 100644
--- a/libavcodec/x86/mlpdsp.c
+++ b/libavcodec/x86/mlpdsp.c
@@ -26,7 +26,7 @@
#include "libavcodec/mlpdsp.h"
#include "libavcodec/mlp.h"
-#if HAVE_7REGS && HAVE_INLINE_ASM
+#if HAVE_7REGS && HAVE_INLINE_ASM && HAVE_INLINE_ASM_NONLOCAL_LABELS
extern char ff_mlp_firorder_8;
extern char ff_mlp_firorder_7;
@@ -178,7 +178,7 @@ static void mlp_filter_channel_x86(int32_t *state, const int32_t *coeff,
av_cold void ff_mlpdsp_init_x86(MLPDSPContext *c)
{
-#if HAVE_7REGS && HAVE_INLINE_ASM
+#if HAVE_7REGS && HAVE_INLINE_ASM && HAVE_INLINE_ASM_NONLOCAL_LABELS
int cpu_flags = av_get_cpu_flags();
if (INLINE_MMX(cpu_flags))
c->mlp_filter_channel = mlp_filter_channel_x86;