diff options
Diffstat (limited to 'aarch64_small/mono-splices/LSL_C.sail')
| -rw-r--r-- | aarch64_small/mono-splices/LSL_C.sail | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/aarch64_small/mono-splices/LSL_C.sail b/aarch64_small/mono-splices/LSL_C.sail new file mode 100644 index 00000000..fb9b352c --- /dev/null +++ b/aarch64_small/mono-splices/LSL_C.sail @@ -0,0 +1,8 @@ +val LSL_C : forall 'N 'S, 'N >= 0 & 'S >= 1. + (bits('N), int('S)) -> (bits('N), bits(1)) effect pure + +function LSL_C (x, shift) = { + result : bits('N) = x << shift; + carry_out : bits(1) = if shift > 'N then 0b0 else [x['N - shift]]; + return((result, carry_out)) +} |
