summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sail.c14
-rw-r--r--lib/sail.h3
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/sail.c b/lib/sail.c
index 22cc5462..5c83690d 100644
--- a/lib/sail.c
+++ b/lib/sail.c
@@ -1460,7 +1460,8 @@ void get_time_ns(sail_int *rop, const unit u)
// ARM specific optimisations
-void arm_align(lbits *rop, const lbits x_bv, const sail_int y_mpz) {
+void arm_align(lbits *rop, const lbits x_bv, const sail_int y_mpz)
+{
uint64_t x = mpz_get_ui(*x_bv.bits);
uint64_t y = mpz_get_ui(y_mpz);
uint64_t z = y * (x / y);
@@ -1468,3 +1469,14 @@ void arm_align(lbits *rop, const lbits x_bv, const sail_int y_mpz) {
mpz_set_ui(*rop->bits, safe_rshift(UINT64_MAX, 64l - (n - 1)) & z);
rop->len = n;
}
+
+// Monomorphisation
+void make_the_value(sail_int *rop, const sail_int op)
+{
+ mpz_set(*rop, op);
+}
+
+void size_itself_int(sail_int *rop, const sail_int op)
+{
+ mpz_set(*rop, op);
+}
diff --git a/lib/sail.h b/lib/sail.h
index a01e7ec8..42f87294 100644
--- a/lib/sail.h
+++ b/lib/sail.h
@@ -153,6 +153,9 @@ SAIL_INT_FUNCTION(pow_int, sail_int, const sail_int, const sail_int);
SAIL_INT_FUNCTION(pow2, sail_int, const sail_int);
+void make_the_value(sail_int *, const sail_int);
+void size_itself_int(sail_int *, const sail_int);
+
/* ***** Sail bitvectors ***** */
typedef uint64_t fbits;