Lines Matching +full:2 +full:v
12 * 2. Redistributions in binary form must reproduce the above copyright
40 /* calculate v * 2 */
42 gf128_mulalpha(struct gf128 v) in gf128_mulalpha() argument
46 mask = !!(v.v[1] & 1); in gf128_mulalpha()
48 v.v[1] = (v.v[1] >> 1) | ((v.v[0] & 1) << 63); in gf128_mulalpha()
49 v.v[0] = (v.v[0] >> 1) ^ ((mask & REV_POLY_REDUCT) << 56); in gf128_mulalpha()
51 return v; in gf128_mulalpha()
67 for (i = 2; i < 16; i += 2) { in gf128_genmultable()
68 tbl[i] = gf128_mulalpha(tbl[i / 2]); in gf128_genmultable()
73 t->a[nib_rev[i]] = tbl[i].v[0] >> 32; in gf128_genmultable()
74 t->b[nib_rev[i]] = tbl[i].v[0]; in gf128_genmultable()
75 t->c[nib_rev[i]] = tbl[i].v[1] >> 32; in gf128_genmultable()
76 t->d[nib_rev[i]] = tbl[i].v[1]; in gf128_genmultable()
81 * Generate tables containing h, h^2, h^3 and h^4, starting at 0.
95 gf128_genmultable(h3, &t->tbls[2]); in gf128_genmultable4()
111 r.v[0] = ((uint64_t)tbl->a[bits] << 32) | tbl->b[bits]; in readrow()
112 r.v[1] = ((uint64_t)tbl->c[bits] << 32) | tbl->d[bits]; in readrow()
129 * (x*2^4 + word[3,0]*h) *
130 * 2^4 + word[7,4]*h) *
132 * 2^4 + word[63,60]*h
148 /* x * 2^4 */ in gfmultword()
149 redbits = x.v[1] % 16; in gfmultword()
150 x.v[1] = (x.v[1] >> 4) | (x.v[0] % 16) << 60; in gfmultword()
151 x.v[0] >>= 4; in gfmultword()
152 x.v[0] ^= (uint64_t)reduction[redbits] << (64 - 16); in gfmultword()
164 * (x*2^4 + worda[3,0]*h^4+wordb[3,0]*h^3+...+wordd[3,0]*h) *
166 * 2^4 + worda[63,60]*h^4+ ... + wordd[63,60]*h
193 rowb = readrow(&tbl->tbls[2], bitsb); in gfmultword4()
197 /* x * 2^4 */ in gfmultword4()
198 redbits = x.v[1] % 16; in gfmultword4()
199 x.v[1] = (x.v[1] >> 4) | (x.v[0] % 16) << 60; in gfmultword4()
200 x.v[0] >>= 4; in gfmultword4()
201 x.v[0] ^= (uint64_t)reduction[redbits] << (64 - 16); in gfmultword4()
216 gf128_mul(struct gf128 v, struct gf128table *tbl) in gf128_mul() argument
222 ret = gfmultword(v.v[1], ret, tbl); in gf128_mul()
223 ret = gfmultword(v.v[0], ret, tbl); in gf128_mul()
229 * Calculate a*h^4 + b*h^3 + c*h^2 + d*h, or:
240 tmp = gfmultword4(a.v[1], b.v[1], c.v[1], d.v[1], tmp, tbl); in gf128_mul4()
241 tmp = gfmultword4(a.v[0], b.v[0], c.v[0], d.v[0], tmp, tbl); in gf128_mul4()
252 * Calculate a*h^4 + b*h^3 + c*h^2 + d*h, or:
256 gf128_mul4b(struct gf128 r, const uint8_t *v, struct gf128table4 *tbl) in gf128_mul4b() argument
263 a = gf128_add(r, gf128_read(&v[0*16])); in gf128_mul4b()
264 b = gf128_read(&v[1*16]); in gf128_mul4b()
265 c = gf128_read(&v[2*16]); in gf128_mul4b()
266 d = gf128_read(&v[3*16]); in gf128_mul4b()
268 tmp = gfmultword4(a.v[1], b.v[1], c.v[1], d.v[1], tmp, tbl); in gf128_mul4b()
269 tmp = gfmultword4(a.v[0], b.v[0], c.v[0], d.v[0], tmp, tbl); in gf128_mul4b()