df826c4f0edf9a651e6bb3fe8936fe4162aff681
[nmigen-gf.git] / gf_reference / gfbmadd.py
1 from .state import ST
2 from .decode_reducing_polynomial import decode_reducing_polynomial
3 from .clmul import clmul
4 from .cldivrem import cldivrem
5
6
7 def gfbmadd(a, b, c):
8 v = clmul(a, b) ^ c
9 red_poly = decode_reducing_polynomial()
10 q, r = cldivrem(v, red_poly, width=ST.XLEN + 1)
11 return r