summaryrefslogtreecommitdiff
path: root/mips/README
diff options
context:
space:
mode:
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.