summaryrefslogtreecommitdiff
path: root/aarch64_small/mono-splices/BigEndianReverse.sail
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64_small/mono-splices/BigEndianReverse.sail')
-rw-r--r--aarch64_small/mono-splices/BigEndianReverse.sail8
1 files changed, 8 insertions, 0 deletions
diff --git a/aarch64_small/mono-splices/BigEndianReverse.sail b/aarch64_small/mono-splices/BigEndianReverse.sail
new file mode 100644
index 00000000..97893ed1
--- /dev/null
+++ b/aarch64_small/mono-splices/BigEndianReverse.sail
@@ -0,0 +1,8 @@
+val BigEndianReverse : forall 'W, 'W in {8,16,32,64,128}. bits('W) -> bits('W) effect pure
+
+function BigEndianReverse value_name = {
+ result : bits('W) = replicate_bits(0b0,'W);
+ foreach (i from 0 to ('W - 8) by 8)
+ result[i+7 .. i] = (value_name['W-i - 1 .. 'W-i - 8] : bits(8));
+ return result
+}