summaryrefslogtreecommitdiff
path: root/mips/README
blob: feaebfde76284417f910d2f87d8beeea76bfb3d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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.