• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef WIN32_LEAN_AND_MEAN
2 #define WIN32_LEAN_AND_MEAN
3 #endif
4 #define __CRT__NO_INLINE
5 #include <windows.h>
6 
7 /* for __x86_64 only */
8 
UnsignedMultiplyExtract128(DWORD64 Multiplier,DWORD64 Multiplicand,BYTE Shift)9 DWORD64 UnsignedMultiplyExtract128(DWORD64 Multiplier,DWORD64 Multiplicand,BYTE Shift) {
10       DWORD64 extractedProduct;
11       DWORD64 highProduct;
12       DWORD64 lowProduct;
13       lowProduct = UnsignedMultiply128(Multiplier,Multiplicand,&highProduct);
14       extractedProduct = ShiftRight128(lowProduct,highProduct,Shift);
15       return extractedProduct;
16 }
17 
18