OSDN Git Service

lavu/intmath.h: Move x86 only msvc/icl functions to x86 specific header.
authorMatt Oliver <protogonoi@gmail.com>
Fri, 16 Oct 2015 06:00:13 +0000 (17:00 +1100)
committerMatt Oliver <protogonoi@gmail.com>
Mon, 19 Oct 2015 02:40:51 +0000 (13:40 +1100)
Signed-off-by: Matt Oliver <protogonoi@gmail.com>
libavutil/intmath.h
libavutil/x86/intmath.h

index 5a55123..5a10d02 100644 (file)
 #endif
 
 #if HAVE_FAST_CLZ
-#if defined( __INTEL_COMPILER )
-#ifndef ff_log2
-#   define ff_log2(x) (_bit_scan_reverse((x)|1))
-#   ifndef ff_log2_16bit
-#      define ff_log2_16bit av_log2
-#   endif
-#endif /* ff_log2 */
-#elif AV_GCC_VERSION_AT_LEAST(3,4)
+#if AV_GCC_VERSION_AT_LEAST(3,4)
 #ifndef ff_log2
 #   define ff_log2(x) (31 - __builtin_clz((x)|1))
 #   ifndef ff_log2_16bit
@@ -55,7 +48,6 @@ extern const uint8_t ff_log2_tab[256];
 
 #ifndef ff_log2
 #define ff_log2 ff_log2_c
-#if !defined( _MSC_VER )
 static av_always_inline av_const int ff_log2_c(unsigned int v)
 {
     int n = 0;
@@ -71,15 +63,6 @@ static av_always_inline av_const int ff_log2_c(unsigned int v)
 
     return n;
 }
-#else
-static av_always_inline av_const int ff_log2_c(unsigned int v)
-{
-    unsigned long n;
-    _BitScanReverse(&n, v|1);
-    return n;
-}
-#define ff_log2_16bit av_log2
-#endif
 #endif
 
 #ifndef ff_log2_16bit
@@ -106,11 +89,7 @@ static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
  */
 
 #if HAVE_FAST_CLZ
-#if defined( __INTEL_COMPILER )
-#ifndef ff_ctz
-#define ff_ctz(v) _bit_scan_forward(v)
-#endif
-#elif AV_GCC_VERSION_AT_LEAST(3,4)
+#if AV_GCC_VERSION_AT_LEAST(3,4)
 #ifndef ff_ctz
 #define ff_ctz(v) __builtin_ctz(v)
 #endif
@@ -128,7 +107,6 @@ static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
  * @param v  input value. If v is 0, the result is undefined.
  * @return   the number of trailing 0-bits
  */
-#if !defined( _MSC_VER )
 /* We use the De-Bruijn method outlined in:
  * http://supertech.csail.mit.edu/papers/debruijn.pdf. */
 static av_always_inline av_const int ff_ctz_c(int v)
@@ -139,14 +117,6 @@ static av_always_inline av_const int ff_ctz_c(int v)
     };
     return debruijn_ctz32[(uint32_t)((v & -v) * 0x077CB531U) >> 27];
 }
-#else
-static av_always_inline av_const int ff_ctz_c( int v )
-{
-    unsigned long c;
-    _BitScanForward(&c, v);
-    return c;
-}
-#endif
 #endif
 
 #ifndef ff_ctzll
index 3ba5ed0..7881e3c 100644 (file)
 
 #if HAVE_FAST_CLZ
 #if defined(__INTEL_COMPILER)
+#   define ff_log2(x) (_bit_scan_reverse((x)|1))
+#   define ff_log2_16bit av_log2
+
+#   define ff_ctz(v) _bit_scan_forward(v)
+
 #   define ff_ctzll ff_ctzll_x86
 static av_always_inline av_const int ff_ctzll_x86(long long v)
 {
@@ -38,6 +43,21 @@ static av_always_inline av_const int ff_ctzll_x86(long long v)
 #   endif
 }
 #elif defined(_MSC_VER)
+#   define ff_log2 ff_log2_x86
+static av_always_inline av_const int ff_log2_x86(unsigned int v) {
+    unsigned long n;
+    _BitScanReverse(&n, v | 1);
+    return n;
+}
+#   define ff_log2_16bit av_log2
+
+#   define ff_ctz ff_ctz_x86
+static av_always_inline av_const int ff_ctz_x86(int v) {
+    unsigned long c;
+    _BitScanForward(&c, v);
+    return c;
+}
+
 #   define ff_ctzll ff_ctzll_x86
 static av_always_inline av_const int ff_ctzll_x86(long long v)
 {