Lines Matching +full:0 +full:v
32 #define REV_POLY_REDUCT 0xe1 /* 0x87 bit reversed */
36 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe,
37 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf,
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()
55 * Generate a table for 0-16 * h. Store the results in the table w/ indexes
64 tbl[0] = MAKE_GF128(0, 0); in gf128_genmultable()
72 for (i = 0; i < 16; i++) { 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.
88 gf128_genmultable(h, &t->tbls[0]); in gf128_genmultable4()
90 h2 = gf128_mul(h, &t->tbls[0]); 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()
123 0x0000, 0x1c20, 0x3840, 0x2460, 0x7080, 0x6ca0, 0x48c0, 0x54e0,
124 0xe100, 0xfd20, 0xd940, 0xc560, 0x9180, 0x8da0, 0xa9c0, 0xb5e0,
129 * (x*2^4 + word[3,0]*h) *
142 for (i = 0; i < 64; i += 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) *
185 for (i = 0; i < 64; i += 4) { in gfmultword4()
195 rowd = readrow(&tbl->tbls[0], bitsd); 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
220 ret = MAKE_GF128(0, 0); in gf128_mul()
222 ret = gfmultword(v.v[1], ret, tbl); in gf128_mul()
223 ret = gfmultword(v.v[0], ret, tbl); in gf128_mul()
238 tmp = MAKE_GF128(0, 0); in gf128_mul4()
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()
247 * a = data[0..15] + r
256 gf128_mul4b(struct gf128 r, const uint8_t *v, struct gf128table4 *tbl) in gf128_mul4b() argument
261 tmp = MAKE_GF128(0, 0); in gf128_mul4b()
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()