Use faster byte swapping when compiling with MSVC

When compiling with MSVC on x86-compatible, use an intrinsic for byte swapping.
In contrast to the GCC path, we do not prefer inline assembly here as it is not
supported for the x64 platform.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Sebastian Schuberth 2009-10-19 18:37:05 +02:00 committed by Junio C Hamano
parent cd0f8e6d63
commit 0fcabdeb52
1 changed files with 10 additions and 0 deletions

View File

@ -28,6 +28,16 @@ static inline uint32_t default_swab32(uint32_t val)
} \ } \
__res; }) __res; })


#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))

#include <stdlib.h>

#define bswap32(x) _byteswap_ulong(x)

#endif

#ifdef bswap32

#undef ntohl #undef ntohl
#undef htonl #undef htonl
#define ntohl(x) bswap32(x) #define ntohl(x) bswap32(x)