From 5e7dfb7de11dab3cbf8663d4fcb682935bd3a80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= Date: Wed, 20 Jan 2010 06:01:54 +0000 Subject: [PATCH] Move COPY3_IF_LT to lavc/mathops.h This obscure macro is only used in motion_est.c so having it in lavc makes more sense. See discussion here: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2008-November/056561.html Originally committed as revision 21346 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mathops.h | 9 +++++++++ libavcodec/x86/mathops.h | 12 ++++++++++++ libavutil/internal.h | 19 ------------------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/libavcodec/mathops.h b/libavcodec/mathops.h index 4e24350ef2..5782459080 100644 --- a/libavcodec/mathops.h +++ b/libavcodec/mathops.h @@ -116,5 +116,14 @@ static inline av_const int sign_extend(int val, unsigned bits) } #endif +#ifndef COPY3_IF_LT +#define COPY3_IF_LT(x, y, a, b, c, d)\ +if ((y) < (x)) {\ + (x) = (y);\ + (a) = (b);\ + (c) = (d);\ +} +#endif + #endif /* AVCODEC_MATHOPS_H */ diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h index a66c601878..691a200fd4 100644 --- a/libavcodec/x86/mathops.h +++ b/libavcodec/x86/mathops.h @@ -66,4 +66,16 @@ static inline av_const int mid_pred(int a, int b, int c) } #endif +#if HAVE_CMOV +#define COPY3_IF_LT(x, y, a, b, c, d)\ +__asm__ volatile(\ + "cmpl %0, %3 \n\t"\ + "cmovl %3, %0 \n\t"\ + "cmovl %4, %1 \n\t"\ + "cmovl %5, %2 \n\t"\ + : "+&r" (x), "+&r" (a), "+r" (c)\ + : "r" (y), "r" (b), "r" (d)\ +); +#endif + #endif /* AVCODEC_X86_MATHOPS_H */ diff --git a/libavutil/internal.h b/libavutil/internal.h index ac7f1523e6..f0ea232ae6 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -156,25 +156,6 @@ static inline av_const unsigned int ff_sqrt(unsigned int a) level = (level ^ mask) - mask; #endif -#if HAVE_CMOV -#define COPY3_IF_LT(x, y, a, b, c, d)\ -__asm__ volatile(\ - "cmpl %0, %3 \n\t"\ - "cmovl %3, %0 \n\t"\ - "cmovl %4, %1 \n\t"\ - "cmovl %5, %2 \n\t"\ - : "+&r" (x), "+&r" (a), "+r" (c)\ - : "r" (y), "r" (b), "r" (d)\ -); -#else -#define COPY3_IF_LT(x, y, a, b, c, d)\ -if ((y) < (x)) {\ - (x) = (y);\ - (a) = (b);\ - (c) = (d);\ -} -#endif - /* avoid usage of dangerous/inappropriate system functions */ #undef malloc #define malloc please_use_av_malloc