d2s_intrinsics.h File Reference
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Function Documentation
◆ div10()
◆ div100()
◆ div1e8()
◆ div5()
◆ shiftright128()
Definition at line 100 of file d2s_intrinsics.h.
101{
102 /* We don't need to handle the case dist >= 64 here (see above). */
104#if !defined(RYU_32_BIT_PLATFORM)
106 return (hi << (64 - dist)) | (lo >> dist);
107#else
108 /* Avoid a 64-bit shift by taking advantage of the range of shift values. */
110 return (hi << (64 - dist)) | ((
uint32) (lo >> 32) >> (dist - 32));
111#endif
112}
Assert(PointerIsAligned(start, uint64))
References Assert().
Referenced by mulShiftAll().
◆ umul128()
Definition at line 65 of file d2s_intrinsics.h.
66{
67 /*
68 * The casts here help MSVC to avoid calls to the __allmul library
69 * function.
70 */
75
80
83
84 const uint64 mid1 = b10 + b00Hi;
87
88 const uint64 mid2 = b01 + mid1Lo;
91
92 const uint64 pHi = b11 + mid1Hi + mid2Hi;
94
95 *productHi = pHi;
96 return pLo;
97}
References a, and b.
Referenced by mulShiftAll().