ffmpeg | branch: master | Matt Oliver <protogo...@gmail.com> | Mon Nov 9 20:19:32 2015 +1100| [9b9c9ef3b42116e7ad2111fc8145f4eca12d657b] | committer: Matt Oliver
avutil/x86/bswap: Add msvc bswap instrinsics. This adds msvc optimisations as well as fixing an error in icl whereby it will generate invalid code otherwise. Signed-off-by: Matt Oliver <protogo...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9b9c9ef3b42116e7ad2111fc8145f4eca12d657b --- libavutil/x86/bswap.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libavutil/x86/bswap.h b/libavutil/x86/bswap.h index 3efd578..11d143b 100644 --- a/libavutil/x86/bswap.h +++ b/libavutil/x86/bswap.h @@ -28,7 +28,30 @@ #include "config.h" #include "libavutil/attributes.h" -#if HAVE_INLINE_ASM +#if defined(_MSC_VER) + +#define av_bswap16 av_bswap16 +static av_always_inline av_const uint16_t av_bswap16(uint16_t x) +{ + return _rotr16(x, 8); +} + +#define av_bswap32 av_bswap32 +static av_always_inline av_const uint32_t av_bswap32(uint32_t x) +{ + return _byteswap_ulong(x); +} + +#if ARCH_X86_64 +#define av_bswap64 av_bswap64 +static inline uint64_t av_const av_bswap64(uint64_t x) +{ + return _byteswap_uint64(x); +} +#endif + + +#elif HAVE_INLINE_ASM #if AV_GCC_VERSION_AT_MOST(4,0) #define av_bswap16 av_bswap16 _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog