liblzma: Port to VS 6, 7.0

Also remove use of MSVC intrinsic.
This commit is contained in:
Daniel Pfeifer 2014-07-13 22:21:58 +02:00 committed by Brad King
parent 7a92eddbcb
commit c20b45027e
2 changed files with 10 additions and 17 deletions

View File

@ -16,6 +16,10 @@
#ifndef LZMA_SYSDEFS_H #ifndef LZMA_SYSDEFS_H
#define LZMA_SYSDEFS_H #define LZMA_SYSDEFS_H
#if defined(_MSC_VER)
# pragma warning(disable: 4028 4244 4761)
#endif
////////////// //////////////
// Includes // // Includes //
////////////// //////////////
@ -46,6 +50,12 @@
# include <limits.h> # include <limits.h>
#endif #endif
#if defined(_MSC_VER) && (_MSC_VER < 1310)
# define UINT64_C(n) n ## ui64
#endif
// Be more compatible with systems that have non-conforming inttypes.h. // Be more compatible with systems that have non-conforming inttypes.h.
// We assume that int is 32-bit and that long is either 32-bit or 64-bit. // We assume that int is 32-bit and that long is either 32-bit or 64-bit.
// Full Autoconf test could be more correct, but this should work well enough. // Full Autoconf test could be more correct, but this should work well enough.

View File

@ -387,13 +387,6 @@ bsr32(uint32_t n)
__asm__("bsrl %1, %0" : "=r" (i) : "rm" (n)); __asm__("bsrl %1, %0" : "=r" (i) : "rm" (n));
return i; return i;
#elif defined(_MSC_VER) && _MSC_VER >= 1400
// MSVC isn't supported by tuklib, but since this code exists,
// it doesn't hurt to have it here anyway.
uint32_t i;
_BitScanReverse((DWORD *)&i, n);
return i;
#else #else
uint32_t i = 31; uint32_t i = 31;
@ -441,11 +434,6 @@ clz32(uint32_t n)
: "=r" (i) : "rm" (n)); : "=r" (i) : "rm" (n));
return i; return i;
#elif defined(_MSC_VER) && _MSC_VER >= 1400
uint32_t i;
_BitScanReverse((DWORD *)&i, n);
return i ^ 31U;
#else #else
uint32_t i = 0; uint32_t i = 0;
@ -491,11 +479,6 @@ ctz32(uint32_t n)
__asm__("bsfl %1, %0" : "=r" (i) : "rm" (n)); __asm__("bsfl %1, %0" : "=r" (i) : "rm" (n));
return i; return i;
#elif defined(_MSC_VER) && _MSC_VER >= 1400
uint32_t i;
_BitScanForward((DWORD *)&i, n);
return i;
#else #else
uint32_t i = 0; uint32_t i = 0;