summaryrefslogtreecommitdiff
path: root/mpf/sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'mpf/sub.c')
-rw-r--r--mpf/sub.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/mpf/sub.c b/mpf/sub.c
index c0077a2aa..fde3809c0 100644
--- a/mpf/sub.c
+++ b/mpf/sub.c
@@ -156,7 +156,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
1 00000000 ...
0 ffffffff ... */
- if (up[usize - 1] != 1 || vp[vsize - 1] != ~(mp_limb_t) 0
+ if (up[usize - 1] != 1 || vp[vsize - 1] != GMP_NUMB_MAX
|| (usize >= 2 && up[usize - 2] != 0))
goto general_case;
@@ -166,7 +166,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
/* Skip sequences of 00000000/ffffffff */
while (vsize != 0 && usize != 0 && up[usize - 1] == 0
- && vp[vsize - 1] == ~(mp_limb_t) 0)
+ && vp[vsize - 1] == GMP_NUMB_MAX)
{
usize--;
vsize--;
@@ -175,7 +175,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
if (usize == 0)
{
- while (vsize != 0 && vp[vsize - 1] == ~(mp_limb_t) 0)
+ while (vsize != 0 && vp[vsize - 1] == GMP_NUMB_MAX)
{
vsize--;
exp--;
@@ -212,7 +212,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
mp_size_t size, i;
size = vsize;
for (i = 0; i < size; i++)
- tp[i] = ~vp[i];
+ tp[i] = ~vp[i] & GMP_NUMB_MASK;
cy_limb = 1 - mpn_add_1 (tp, tp, vsize, (mp_limb_t) 1);
rsize = vsize;
if (cy_limb == 0)
@@ -240,7 +240,7 @@ mpf_sub (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
mp_size_t size, i;
size = vsize - usize;
for (i = 0; i < size; i++)
- tp[i] = ~vp[i];
+ tp[i] = ~vp[i] & GMP_NUMB_MASK;
cy_limb = mpn_sub_n (tp + size, up, vp + size, usize);
cy_limb+= mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
cy_limb-= mpn_add_1 (tp, tp, vsize, (mp_limb_t) 1);
@@ -339,9 +339,9 @@ general_case:
/* vvvvvvv */
mp_size_t size, i;
size = vsize - usize;
- tp[0] = -vp[0];
+ tp[0] = -vp[0] & GMP_NUMB_MASK;
for (i = 1; i < size; i++)
- tp[i] = ~vp[i];
+ tp[i] = ~vp[i] & GMP_NUMB_MASK;
mpn_sub_n (tp + size, up, vp + size, usize);
mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
rsize = vsize;
@@ -365,9 +365,9 @@ general_case:
/* vvvvv */
mp_size_t size, i;
size = vsize + ediff - usize;
- tp[0] = -vp[0];
+ tp[0] = -vp[0] & GMP_NUMB_MASK;
for (i = 1; i < size; i++)
- tp[i] = ~vp[i];
+ tp[i] = ~vp[i] & GMP_NUMB_MASK;
mpn_sub (tp + size, up, usize, vp + size, usize - ediff);
mpn_sub_1 (tp + size, tp + size, usize, (mp_limb_t) 1);
rsize = vsize + ediff;
@@ -380,11 +380,11 @@ general_case:
/* vv */
mp_size_t size, i;
size = vsize + ediff - usize;
- tp[0] = -vp[0];
+ tp[0] = -vp[0] & GMP_NUMB_MASK;
for (i = 1; i < vsize; i++)
- tp[i] = ~vp[i];
+ tp[i] = ~vp[i] & GMP_NUMB_MASK;
for (i = vsize; i < size; i++)
- tp[i] = ~(mp_limb_t) 0;
+ tp[i] = GMP_NUMB_MAX;
mpn_sub_1 (tp + size, up, usize, (mp_limb_t) 1);
rsize = size + usize;
}