BN_BITS4
if ((h >> BN_BITS4) == dh)
(t << BN_BITS4) |
((l & BN_MASK2h) >> BN_BITS4))))
t = (tl >> BN_BITS4);
tl = (tl << BN_BITS4) & BN_MASK2h;
ret = q << BN_BITS4;
h = ((h << BN_BITS4) | (l >> BN_BITS4)) & BN_MASK2;
l = (l & BN_MASK2l) << BN_BITS4;
dh = (d & BN_MASK2h) >> BN_BITS4;
a1 = a >> BN_BITS4;
b1 = b >> BN_BITS4;
r1 += x >> BN_BITS4;
bn_addw(r0, x << BN_BITS4, &carry, &r0);
r1 += x >> BN_BITS4;
bn_addw(r0, x << BN_BITS4, &carry, &r0);
a1 = a >> BN_BITS4;
b1 = b >> BN_BITS4;
acc1 = r0 >> BN_BITS4;
acc3 = r1 >> BN_BITS4;
acc2 += (acc1 >> BN_BITS4) + (x >> BN_BITS4);
acc3 += acc2 >> BN_BITS4;
acc2 += (acc1 >> BN_BITS4) + (x >> BN_BITS4);
acc3 += acc2 >> BN_BITS4;
*out_r1 = (acc3 << BN_BITS4) | acc2;
*out_r0 = (acc1 << BN_BITS4) | acc0;
if (w > ((BN_ULONG)1 << BN_BITS4)) {
ret = ((ret << BN_BITS4) | ((a->d[i] >> BN_BITS4) &
ret = ((ret << BN_BITS4) | (a->d[i] & BN_MASK2l)) % w;