Remove BN_TBIT.

Normal shifts do the trick just fine and are less likely to tempt the
compiler into inserting a jump.

Change-Id: Iaa1da1b6f986fd447694fcde8f3525efb9eeaf11
Reviewed-on: https://boringssl-review.googlesource.com/22888
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/fipsmodule/bn/internal.h b/crypto/fipsmodule/bn/internal.h
index 7fef38e..acc0ac8 100644
--- a/crypto/fipsmodule/bn/internal.h
+++ b/crypto/fipsmodule/bn/internal.h
@@ -153,7 +153,6 @@
 #define BN_MASK2h (0xffffffff00000000UL)
 #define BN_MASK2h1 (0xffffffff80000000UL)
 #define BN_MONT_CTX_N0_LIMBS 1
-#define BN_TBIT (0x8000000000000000UL)
 #define BN_DEC_CONV (10000000000000000000UL)
 #define BN_DEC_NUM 19
 #define TOBN(hi, lo) ((BN_ULONG)(hi) << 32 | (lo))
@@ -174,7 +173,6 @@
 // of n0[1] and shorter R value would suffice for the others. However,
 // currently only the assembly files know which is which.
 #define BN_MONT_CTX_N0_LIMBS 2
-#define BN_TBIT (0x80000000UL)
 #define BN_DEC_CONV (1000000000UL)
 #define BN_DEC_NUM 9
 #define TOBN(hi, lo) (lo), (hi)
diff --git a/crypto/fipsmodule/bn/shift.c b/crypto/fipsmodule/bn/shift.c
index 64afa78..d4528e6 100644
--- a/crypto/fipsmodule/bn/shift.c
+++ b/crypto/fipsmodule/bn/shift.c
@@ -122,7 +122,7 @@
   for (i = 0; i < a->top; i++) {
     t = *(ap++);
     *(rp++) = (t << 1) | c;
-    c = (t & BN_TBIT) ? 1 : 0;
+    c = t >> (BN_BITS2 - 1);
   }
   if (c) {
     *rp = 1;
@@ -209,14 +209,14 @@
   }
   rp = r->d;
   t = ap[--i];
-  c = (t & 1) ? BN_TBIT : 0;
+  c = t << (BN_BITS2 - 1);
   if (t >>= 1) {
     rp[i] = t;
   }
   while (i > 0) {
     t = ap[--i];
     rp[i] = (t >> 1) | c;
-    c = (t & 1) ? BN_TBIT : 0;
+    c = t << (BN_BITS2 - 1);
   }
   r->top = j;