summaryrefslogtreecommitdiff
path: root/aarch64_small/mono-splices/Poly32Mod2.sail
blob: 5162d60736cacb1f45b5bf8c2f2ff685d6f8d3bc (plain)
1
2
3
4
5
6
7
8
function Poly32Mod2 (data__arg, poly) = {
  data = data__arg;
  assert('N > 32, "(N > 32)");
  let poly' : bits('N) = extzv(poly) in
  foreach (i from ('N - 1) to 32 by 1 in dec)
    if [data[i]] == 0b1 then data = data | (poly' << i - 32) else ();
  return(slice(data, 0, 32))
}