summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sail_lib.ml20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/sail_lib.ml b/src/sail_lib.ml
index 4e78507f..252d815d 100644
--- a/src/sail_lib.ml
+++ b/src/sail_lib.ml
@@ -571,18 +571,22 @@ let shift_bits_right_arith (x, y) =
let msbs = replicate_bits (take 1 x, ybi) in
let rbits = msbs @ x in
take (List.length x) rbits
-
-let shift_bits_right (x, y) =
- let ybi = uint(y) in
- let zeros = zeros ybi in
+
+let shiftr (x, y) =
+ let zeros = zeros y in
let rbits = zeros @ x in
take (List.length x) rbits
+
+let shift_bits_right (x, y) =
+ shiftr (x, uint(y))
-let shift_bits_left (x, y) =
- let ybi = uint(y) in
- let yi = Big_int.to_int ybi in
- let zeros = zeros ybi in
+let shiftl (x, y) =
+ let yi = Big_int.to_int y in
+ let zeros = zeros y in
let rbits = x @ zeros in
drop yi rbits
+let shift_bits_left (x, y) =
+ shiftl (x, uint(y))
+
let speculate_conditional_success () = true