summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/arith.sail4
-rw-r--r--lib/vector_dec.sail3
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/arith.sail b/lib/arith.sail
index d1132d5b..fa091772 100644
--- a/lib/arith.sail
+++ b/lib/arith.sail
@@ -55,6 +55,8 @@ val div_int = {
c: "div_int"
} : (int, int) -> int
+overload operator / = {div_int}
+
val mod_int = {
smt: "mod",
ocaml: "modulus",
@@ -62,6 +64,8 @@ val mod_int = {
c: "mod_int"
} : (int, int) -> int
+overload operator % = {mod_int}
+
val abs_int = {
smt : "abs",
ocaml: "abs_int",
diff --git a/lib/vector_dec.sail b/lib/vector_dec.sail
index f0551f28..eb2c9b7e 100644
--- a/lib/vector_dec.sail
+++ b/lib/vector_dec.sail
@@ -99,6 +99,9 @@ val set_slice_int = "set_slice_int" : forall 'w. (atom('w), int, int, bits('w))
val set_slice_bits = "set_slice" : forall 'n 'm.
(atom('n), atom('m), bits('n), int, bits('m)) -> bits('n)
+val slice = "slice" : forall 'n 'm 'o, 0 <= 'o < 'm & 'o + 'n <= 'm & 0 <= 'n.
+ (bits('m), atom('o), atom('n)) -> bits('n)
+
val replicate_bits = "replicate_bits" : forall 'n 'm. (bits('n), atom('m)) -> bits('n * 'm)
val unsigned = {