summaryrefslogtreecommitdiff
path: root/mips/README
diff options
context:
space:
mode:
authorRobert Norton2016-05-31 16:17:15 +0100
committerRobert Norton2016-05-31 16:18:53 +0100
commitb8b2c6d936bfccd4767069f21debe38f2eb60141 (patch)
tree0725f753d90cbb2c81f674bc34d8f69b42dda9e8 /mips/README
parent2adfd55ff481cfeee4d3063f466fcb4b38e2698c (diff)
Add README in mips directory describing file breakdown and remove reference to non-existent mips.sail in top level README.
Diffstat (limited to 'mips/README')
-rw-r--r--mips/README23
1 files changed, 23 insertions, 0 deletions
diff --git a/mips/README b/mips/README
new file mode 100644
index 00000000..feaebfde
--- /dev/null
+++ b/mips/README
@@ -0,0 +1,23 @@
+This directory contains a MIPS64-style processor written in Sail. To
+support integration with the CHERI ISA it is split across several
+files, which must be given to sail in the following order:
+
+ 1. mips_prelude.sail contains definitions used in the rest of the
+ ISA, including register declarations and helper functions, for
+ example for performing address translation.
+
+ 2. mips_wrappers.sail contains wrappers and hooks around certain
+ functions. In straight MIPS these are mostly identity functions, but
+ on CHERI they are substituted for functions which implement
+ CHERI-specific behaviour.
+
+ 3. mips_insts.sail contains descriptions of instructions in the form
+ of AST members, decode and execute function clauses (using Sail's
+ scattered union/function definitions).
+
+ 4. mips_epilogue.sail just closes the function and AST union definitions.
+
+The CHERI sail model extends this model by adding more declarations in a
+file cheri_prelude.sail, included after mips_prelude.sail, replacing
+the functions in mips_wrappers.sail and adding new instruction
+definitions in cheri_insts.sail.