summaryrefslogtreecommitdiff
path: root/aarch64_small/mono-splices/Poly32Mod2.sail
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64_small/mono-splices/Poly32Mod2.sail')
-rw-r--r--aarch64_small/mono-splices/Poly32Mod2.sail8
1 files changed, 8 insertions, 0 deletions
diff --git a/aarch64_small/mono-splices/Poly32Mod2.sail b/aarch64_small/mono-splices/Poly32Mod2.sail
new file mode 100644
index 00000000..5162d607
--- /dev/null
+++ b/aarch64_small/mono-splices/Poly32Mod2.sail
@@ -0,0 +1,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))
+}