|
@@ -36,40 +36,6 @@
|
|
|
#define Crash() exit(1)
|
|
#define Crash() exit(1)
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-// GCC 4.8 defines all the rotate functions now
|
|
|
|
|
-// Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit
|
|
|
|
|
-#ifdef _rotl
|
|
|
|
|
-#define rotl _rotl
|
|
|
|
|
-#else
|
|
|
|
|
-inline u32 rotl(u32 x, int shift) {
|
|
|
|
|
- shift &= 31;
|
|
|
|
|
- if (!shift)
|
|
|
|
|
- return x;
|
|
|
|
|
- return (x << shift) | (x >> (32 - shift));
|
|
|
|
|
-}
|
|
|
|
|
-#endif
|
|
|
|
|
-
|
|
|
|
|
-#ifdef _rotr
|
|
|
|
|
-#define rotr _rotr
|
|
|
|
|
-#else
|
|
|
|
|
-inline u32 rotr(u32 x, int shift) {
|
|
|
|
|
- shift &= 31;
|
|
|
|
|
- if (!shift)
|
|
|
|
|
- return x;
|
|
|
|
|
- return (x >> shift) | (x << (32 - shift));
|
|
|
|
|
-}
|
|
|
|
|
-#endif
|
|
|
|
|
-
|
|
|
|
|
-inline u64 _rotl64(u64 x, unsigned int shift) {
|
|
|
|
|
- unsigned int n = shift % 64;
|
|
|
|
|
- return (x << n) | (x >> (64 - n));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-inline u64 _rotr64(u64 x, unsigned int shift) {
|
|
|
|
|
- unsigned int n = shift % 64;
|
|
|
|
|
- return (x >> n) | (x << (64 - n));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
#else // _MSC_VER
|
|
#else // _MSC_VER
|
|
|
|
|
|
|
|
// Locale Cross-Compatibility
|
|
// Locale Cross-Compatibility
|
|
@@ -80,10 +46,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void);
|
|
|
}
|
|
}
|
|
|
#define Crash() DebugBreak()
|
|
#define Crash() DebugBreak()
|
|
|
|
|
|
|
|
-// cstdlib provides these on MSVC
|
|
|
|
|
-#define rotr _rotr
|
|
|
|
|
-#define rotl _rotl
|
|
|
|
|
-
|
|
|
|
|
#endif // _MSC_VER ndef
|
|
#endif // _MSC_VER ndef
|
|
|
|
|
|
|
|
// Generic function to get last error message.
|
|
// Generic function to get last error message.
|