Montgomery Multiplication (2012) [pdf]
hackersdelight.org
hackersdelight.org
And compilers often let you call these instructions fairly directly, with compiler intrinsics.
With Visual Studio on Windows x64, for example, you can implement the mulul64() function with _umul128: https://docs.microsoft.com/en-us/cpp/intrinsics/umul128 (and expect quite a good speedup)