X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/ce541a0ec0b78847792b0a81b829bc76f9c5efcb..c29970a7717261e63ffaabb3c67381f13c5dbca5:/gfreduce.c diff --git a/gfreduce.c b/gfreduce.c index bdf3579..01ca678 100644 --- a/gfreduce.c +++ b/gfreduce.c @@ -90,7 +90,7 @@ void gfreduce_create(gfreduce *r, mp *p) unsigned long i; gfreduce_instr *ip; unsigned f = 0; - size_t w, ww, wi, wl, ll; + size_t w, ww, wi, wl, ll, bb; /* --- Sort out the easy stuff --- */ @@ -121,6 +121,7 @@ void gfreduce_create(gfreduce *r, mp *p) wi = DA_LEN(&iv); f = 0; ll = 0; + bb = MPW_BITS - dw; for (i = 0, mp_scan(&sc, p); mp_step(&sc) && i < d; i++) { if (!mp_bit(&sc)) continue; @@ -149,8 +150,8 @@ void gfreduce_create(gfreduce *r, mp *p) w = ww; wi = DA_LEN(&iv); } - INSTR(GFRI_LSL, (MPW_BITS + i - d)%MPW_BITS); - if ((MPW_BITS + i - d)%MPW_BITS) + INSTR(GFRI_LSL, (bb + i)%MPW_BITS); + if ((bb + i)%MPW_BITS) f |= f_lsr; } wl = DA_LEN(&iv);