Simplify sign selection

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
diff --git a/library/bignum.c b/library/bignum.c
index 70bd428..176b648 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -287,17 +287,8 @@
     unsigned ua = a + 1;
     unsigned ub = b + 1;
 
-    /* MSVC has a warning about unary minus on unsigned integer types,
-     * but this is well-defined and precisely what we want to do here. */
-#if defined(_MSC_VER)
-#pragma warning( push )
-#pragma warning( disable : 4146 )
-#endif
-    /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */
-    const unsigned mask = -second;
-#if defined(_MSC_VER)
-#pragma warning( pop )
-#endif
+    /* second was 0 or 1, mask is 0 or 2 as are ua and ub */
+    const unsigned mask = second << 1;
 
     /* select ua or ub */
     unsigned ur = ( ua & ~mask ) | ( ub & mask );