diff options
Diffstat (limited to 'src/gf_w64.c')
-rw-r--r-- | src/gf_w64.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/gf_w64.c b/src/gf_w64.c index 6e75f5e..de231db 100644 --- a/src/gf_w64.c +++ b/src/gf_w64.c @@ -767,7 +767,7 @@ gf_w64_group_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b) gd = (struct gf_w64_group_data *) h->private; gf_w64_group_set_shift_tables(gd->shift, b, h); - mask = ((1 << g_s) - 1); + mask = (((uint64_t)1 << g_s) - 1); top = 0; bot = gd->shift[a&mask]; a >>= g_s; @@ -791,7 +791,7 @@ gf_w64_group_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b) lshift = ((lshift-1) / g_r) * g_r; rshift = 64 - lshift; - mask = (1 << g_r) - 1; + mask = ((uint64_t)1 << g_r) - 1; while (lshift >= 0) { tp = gd->reduce[(top >> lshift) & mask]; top ^= (tp >> rshift); @@ -840,8 +840,8 @@ void gf_w64_group_multiply_region(gf_t *gf, void *src, void *dest, gf_val_64_t v d64 = (uint64_t *) rd.d_start; dtop = (uint64_t *) rd.d_top; - smask = (1 << g_s) - 1; - rmask = (1 << g_r) - 1; + smask = ((uint64_t)1 << g_s) - 1; + rmask = ((uint64_t)1 << g_r) - 1; while (d64 < dtop) { a64 = *s64; @@ -994,7 +994,7 @@ int gf_w64_group_init(gf_t *gf) gd->reduce = gd->shift + (1 << g_s); gd->reduce[0] = 0; - for (i = 0; i < (1 << g_r); i++) { + for (i = 0; i < ((uint64_t)1 << g_r); i++) { p = 0; index = 0; for (j = 0; j < g_r; j++) { @@ -2153,7 +2153,6 @@ int gf_w64_scratch_size(int mult_type, int region_type, int divide_type, int arg int gf_w64_init(gf_t *gf) { gf_internal_t *h; - int no_default_flag = 0; h = (gf_internal_t *) gf->scratch; @@ -2168,10 +2167,6 @@ int gf_w64_init(gf_t *gf) } else { h->prim_poly = 0x1b; } - if (no_default_flag == 1) { - fprintf(stderr,"Code contains no default irreducible polynomial for given base field\n"); - return 0; - } } gf->multiply.w64 = NULL; |