X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/4108c8d21f2dff8c2666fdeebc5a76b449e2808c..fe6657c961b01ec72e9f35f4c3d96b11b31cf09c:/mp-arith.c diff --git a/mp-arith.c b/mp-arith.c index 941b8df..9cb5178 100644 --- a/mp-arith.c +++ b/mp-arith.c @@ -360,7 +360,7 @@ mp *mp_bit##n##2c(mp *d, mp *a, mp *b) \ p_bn \ } else { /* Both negative */ \ mp *t = mp_not2c(MP_NEW, a); \ - mp *d = mp_not2c(d, b); \ + d = mp_not2c(d, b); \ d = mp_bit##abn(d, t, d); \ MP_DROP(t); \ p_abn \ @@ -652,16 +652,16 @@ mp *mp_odd(mp *d, mp *m, size_t *s) ss = 0; else { mpw x = *v; - mpw mask = MPW_MAX; - unsigned z = MPW_BITS / 2; + unsigned z = MPW_P2; + mpw mask = ((mpw)1 << z) - 1; while (z) { - mask >>= z; if (!(x & mask)) { x >>= z; ss += z; } z >>= 1; + mask >>= z; } }