aboutsummaryrefslogtreecommitdiff
path: root/doc/ExtendingGuide.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ExtendingGuide.md')
-rw-r--r--doc/ExtendingGuide.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/doc/ExtendingGuide.md b/doc/ExtendingGuide.md
index 4533b8b..82a418d 100644
--- a/doc/ExtendingGuide.md
+++ b/doc/ExtendingGuide.md
@@ -33,6 +33,15 @@ existing definitions for privilege levels and exceptions in
`riscv_types.sail`, and modifying the exception handling and privilege
transition functions in `riscv_sys_control.sail`.
+Modifying exception handling
+----------------------------
+
+An extension that needs to interact closely with exception handling
+may need to capture additional information at the time of an
+exception. This is supported using the `ext` field in the
+`sync_exception` type in `riscv_sync_exception.sail`, which is where
+the extension can store this information.
+
Adding low-level platform functionality
---------------------------------------
@@ -91,6 +100,13 @@ The handling of the memory addresses involved during exception
handling can be extending using the interface defined in
`riscv_sys_exceptions.sail`.
+Checking and transforming the program counter
+---------------------------------------------
+
+An extension might want to similarly check and transform accesses to
+the program counter. This is supported by supplying implementations
+of the functions defined in `riscv_pc_access.sail`.
+
Adding new instructions
-----------------------