BN_BITS2
return ((BN_ULONG)(((((BN_ULLONG)h) << BN_BITS2) | l) / (BN_ULLONG)d));
assert((i == BN_BITS2) || (h <= (BN_ULONG)1 << i));
i = BN_BITS2 - i;
h = (h << i) | (l >> (BN_BITS2 - i));
ll >>= BN_BITS2;
ll >>= BN_BITS2;
ll >>= BN_BITS2;
ll >>= BN_BITS2;
ll >>= BN_BITS2;
for (j = BN_BITS2 - 8; j >= 0; j -= 8) {
#if BN_BITS2 == 64
BN_ULLONG R = ((BN_ULLONG)m[0] << BN_BITS2) | m[-1];
BN_ULLONG D = ((BN_ULLONG)d0 << BN_BITS2) | d1;
for (i = 0; i < BN_BITS2; i++) {
mask = 0 - (Q >> (BN_BITS2 - 1)); /* does it overflow? */
lshift = BN_BITS2 - rshift;
rshift %= BN_BITS2; /* say no to undefined behaviour */
q = (BN_ULONG)(((((BN_ULLONG)n0) << BN_BITS2) | n1) / d0);
if (t2 <= ((((BN_ULLONG)rem) << BN_BITS2) | n2))
#if BN_BITS2 == 64 && defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16
if (m->d[j - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) {
wordpos = bitpos / BN_BITS2;
bitpos %= BN_BITS2;
ret |= a->d[wordpos] << (BN_BITS2 - bitpos);
bits = p->top * BN_BITS2;
if (m->d[top - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) {
pow2_shifts *= BN_BITS2;
for (j = 0; j < BN_BITS2; j++) {
for (j = BN_BITS2 - 1; j >= 0; j--) {
p[k] = BN_BITS2 * i + j;
dN = p[0] / BN_BITS2;
d0 = n % BN_BITS2;
d1 = BN_BITS2 - d0;
n /= BN_BITS2;
d0 = p[0] % BN_BITS2;
d1 = BN_BITS2 - d0;
d0 = p[0] % BN_BITS2;
d1 = BN_BITS2 - d0;
n = p[k] / BN_BITS2;
d0 = p[k] % BN_BITS2;
d1 = BN_BITS2 - d0;
udp[i] = ((u0 >> 1) | (u1 << (BN_BITS2 - 1))) & BN_MASK2;
bdp[i] = ((b0 >> 1) | (b1 << (BN_BITS2 - 1))) & BN_MASK2;
if (ubits <= BN_BITS2) {
int utop = (ubits - 1) / BN_BITS2;
ubits = utop * BN_BITS2 + BN_num_bits_word(ul);
#if BN_BITS2 > 32
mask = (0 - (mask >> (BN_BITS2 - 1)));
limb >>= BN_BITS2 - 1;
mask = (0 - (mask >> (BN_BITS2 - 1)));
mask = (0 - (mask >> (BN_BITS2 - 1)));
mask = (0 - (mask >> (BN_BITS2 - 1)));
mask = (0 - (mask >> (BN_BITS2 - 1)));
mask = (0 - (mask >> (BN_BITS2 - 1)));
ret += BN_BITS2 & (~mask & ~past_i);
return ((i * BN_BITS2) + BN_num_bits_word(a->d[i]));
if (words > (INT_MAX / (4 * BN_BITS2))) {
i = n / BN_BITS2;
j = n % BN_BITS2;
i = n / BN_BITS2;
j = n % BN_BITS2;
i = n / BN_BITS2;
j = n % BN_BITS2;
w = n / BN_BITS2;
b = n % BN_BITS2;
condition = ((~condition & ((condition - 1))) >> (BN_BITS2 - 1)) - 1;
#define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits + BN_BITS2 - 1)) / BN_BITS2)
#define Hw(t) (((BN_ULONG)((t) >> BN_BITS2)) & BN_MASK2)
#define LHBITS(a) (((a) >> BN_BITS2) & BN_MASKl)
#define LL2HBITS(a) ((BN_ULLONG)((a) & BN_MASKl) << BN_BITS2)
if (bits > (INT_MAX - BN_BITS2 + 1))
if (((bits + BN_BITS2 - 1) / BN_BITS2) <= (a)->dmax)
return bn_expand2((a), (bits + BN_BITS2 - 1) / BN_BITS2);
BN_ULONG storage[1024 / BN_BITS2];
mont->ri = (BN_num_bits(mod) + (BN_BITS2 - 1)) / BN_BITS2 * BN_BITS2;
#if defined(OPENSSL_BN_ASM_MONT) && (BN_BITS2 <= 32)
if (!(BN_set_bit(R, 2 * BN_BITS2)))
if (!BN_lshift(Ri, Ri, 2 * BN_BITS2))
if (!(BN_set_bit(R, BN_BITS2)))
if (!BN_lshift(Ri, Ri, BN_BITS2))
#if (BN_BITS2 <= 32) && defined(OPENSSL_BN_ASM_MONT)
#elif BN_BITS2 <= 32
#elif BN_BITS2 == 32
carry = (int)bn_add_words(r_d + (128 / BN_BITS2), r_d + (128 / BN_BITS2),
#define BN_NIST_521_RSHIFT (521 % BN_BITS2)
#define BN_NIST_521_LSHIFT (BN_BITS2 - BN_NIST_521_RSHIFT)
#define BN_NIST_192_TOP (192 + BN_BITS2 - 1) / BN_BITS2
#define BN_NIST_224_TOP (224 + BN_BITS2 - 1) / BN_BITS2
#define BN_NIST_256_TOP (256 + BN_BITS2 - 1) / BN_BITS2
#define BN_NIST_384_TOP (384 + BN_BITS2 - 1) / BN_BITS2
#define BN_NIST_521_TOP (521 + BN_BITS2 - 1) / BN_BITS2
#if BN_BITS2 == 64
#if BN_BITS2 == 64
#if BN_BITS2 == 64
#if defined(NIST_INT64) && BN_BITS2 != 64
#if BN_BITS2 == 64
#if BN_BITS2 == 64
#if BN_BITS2 == 64
#if BN_BITS2 == 64
for (j = BN_BITS2 - 4; j >= 0; j -= 4) {
#if BN_BITS2 == 64
nw = n / BN_BITS2;
lb = (unsigned int)n % BN_BITS2;
rb = BN_BITS2 - lb;
rb %= BN_BITS2; /* say no to undefined behaviour */
nw = n / BN_BITS2;
rb = (unsigned int)n % BN_BITS2;
lb = BN_BITS2 - rb;
lb %= BN_BITS2; /* say no to undefined behaviour */
c = t >> (BN_BITS2 - 1);
c = t << (BN_BITS2 - 1);
c = t << (BN_BITS2 - 1);
ret = (BN_ULLONG)(((ret << (BN_ULLONG)BN_BITS2) | a->d[i]) % (BN_ULLONG)w);
j = BN_BITS2 - BN_num_bits_word(w);
i = idx / BN_BITS2;
j = idx % BN_BITS2;
if (bn_wexpand(group->a, (int)(group->poly[0] + BN_BITS2 - 1) / BN_BITS2)
if (bn_wexpand(group->b, (int)(group->poly[0] + BN_BITS2 - 1) / BN_BITS2)
if (bn_wexpand(dest->a, (int)(dest->poly[0] + BN_BITS2 - 1) / BN_BITS2) == NULL)
if (bn_wexpand(dest->b, (int)(dest->poly[0] + BN_BITS2 - 1) / BN_BITS2) == NULL)
in >>= BN_BITS2 - 1;
#if BN_BITS2 != 64
#define P256_LIMBS (256 / BN_BITS2)
#define P256_LIMBS (256 / BN_BITS2)
#elif OPENSSL_SA_BLOCK_BITS < 2 || OPENSSL_SA_BLOCK_BITS > (BN_BITS2 - 1)
#define BN_BITS (BN_BITS2 * 2)
#define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1))
top = BN_num_bits(a) / BN_BITS2;
c = (c % BN_BITS) - BN_BITS2;
c = (c % BN_BITS) - BN_BITS2;
c = (c % BN_BITS) - BN_BITS2;
#define NUM_BITS (BN_BITS2 * 4)