summaryrefslogtreecommitdiff
path: root/src/lem_interp/run_with_elf_cheri.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/lem_interp/run_with_elf_cheri.ml')
-rw-r--r--src/lem_interp/run_with_elf_cheri.ml17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/lem_interp/run_with_elf_cheri.ml b/src/lem_interp/run_with_elf_cheri.ml
index f50720c5..633dda72 100644
--- a/src/lem_interp/run_with_elf_cheri.ml
+++ b/src/lem_interp/run_with_elf_cheri.ml
@@ -491,11 +491,15 @@ let mips_register_data_all = [
("HI", (D_decreasing, 64, 63));
("LO", (D_decreasing, 64, 63));
(* control registers *)
- ("CP0Status", (D_decreasing, 32, 31));
- ("CP0Cause", (D_decreasing, 32, 31));
- ("CP0EPC", (D_decreasing, 64, 63));
- ("CP0LLAddr", (D_decreasing, 64, 63));
- ("CP0LLBit", (D_decreasing, 1, 0));
+ ("CP0Status", (D_decreasing, 32, 31));
+ ("CP0Cause", (D_decreasing, 32, 31));
+ ("CP0EPC", (D_decreasing, 64, 63));
+ ("CP0LLAddr", (D_decreasing, 64, 63));
+ ("CP0LLBit", (D_decreasing, 1, 0));
+ ("CP0Count", (D_decreasing, 32, 31));
+ ("CP0Compare", (D_decreasing, 32, 31));
+ ("CP0HWREna", (D_decreasing, 32, 31));
+ ("CP0UserLocal", (D_decreasing, 64, 63));
]
let cheri_register_data_all = mips_register_data_all @ [
@@ -960,6 +964,9 @@ let get_addr_trans_regs _ =
(Interp_interface.Reg0("PCC", 256, 257, Interp_interface.D_decreasing), Reg.find "PCC" !reg);
(Interp_interface.Reg0("C29", 256, 257, Interp_interface.D_decreasing), Reg.find "C29" !reg);
(Interp_interface.Reg0("CP0Status", 31, 32, Interp_interface.D_decreasing), Reg.find "CP0Status" !reg);
+ (Interp_interface.Reg0("CP0Cause", 31, 32, Interp_interface.D_decreasing), Reg.find "CP0Cause" !reg);
+ (Interp_interface.Reg0("CP0Count", 31, 32, Interp_interface.D_decreasing), Reg.find "CP0Count" !reg);
+ (Interp_interface.Reg0("CP0Compare", 31, 32, Interp_interface.D_decreasing), Reg.find "CP0Compare" !reg);
(Interp_interface.Reg0("inBranchDelay", 0, 1, Interp_interface.D_decreasing), Reg.find "inBranchDelay" !reg);
])