You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
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 <protogonoi@gmail.com>
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user