20 #include "../../internal.h"
26 "BN_MONT_CTX_N0_LIMBS value is invalid");
29 "uint64_t is insufficient precision for n0");
32 #define LG_LITTLE_R (BN_MONT_CTX_N0_LIMBS * BN_BITS2)
74 #if BN_MONT_CTX_N0_LIMBS == 2
119 #if BN_BITS2 == 64 && defined(BN_ULLONG)
121 ((BN_ULLONG)
u * 2 * alpha) - ((BN_ULLONG)
v *
beta));
149 u = ((
u ^ beta_if_u_is_odd) >> 1) + (
u & beta_if_u_is_odd);
151 uint64_t alpha_if_u_is_odd = alpha & u_is_odd;
152 v = (
v >> 1) + alpha_if_u_is_odd;
156 #if BN_BITS2 == 64 && defined(BN_ULLONG)
157 assert(1 == ((BN_ULLONG)
u * 2 * alpha) - ((BN_ULLONG)
v *
beta));