• 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 
MultiplyExtract128(LONG64 Multiplier,LONG64 Multiplicand,BYTE Shift)9 LONG64 MultiplyExtract128(LONG64 Multiplier,LONG64 Multiplicand,BYTE Shift) {
10       LONG64 extractedProduct;
11       LONG64 highProduct;
12       LONG64 lowProduct;
13       lowProduct = Multiply128(Multiplier,Multiplicand,&highProduct);
14       extractedProduct = (LONG64)ShiftRight128((LONG64)lowProduct,(LONG64)highProduct,Shift);
15       return extractedProduct;
16 }
17 
18