blob: b61899b57b7f4e5c594852f3644071dfbb015350 [file] [log] [blame]
#include <_mingw.h>
#ifdef _WIN64
unsigned __int64 __shiftright128 (unsigned __int64 LowPart,
unsigned __int64 HighPart, unsigned char Shift);
unsigned __int64 __shiftright128 (unsigned __int64 LowPart,
unsigned __int64 HighPart, unsigned char Shift)
{
if (Shift >= 128)
return 0ULL;
if (!Shift)
return LowPart;
if (Shift >= 64)
{
LowPart = HighPart;
Shift -= 64;
HighPart = 0;
}
LowPart >>= Shift;
HighPart <<= (64 - Shift);
return (HighPart | LowPart);
}
#endif