summaryrefslogtreecommitdiff
path: root/mips_new_tc
diff options
context:
space:
mode:
authorRobert Norton2018-03-02 13:42:22 +0000
committerRobert Norton2018-03-02 13:44:11 +0000
commitbfb7331e0d1df763e51c59016f9d42e1ff7f90c5 (patch)
treeca4fb6518f9e8472b493d6e0a7b27209f5a89296 /mips_new_tc
parent38ea40a8c9764fa6600141f5ec13d4b5c81d80b7 (diff)
add a cp2_next_pc function to update cheri state in fde loop and a stub version for mips.
Diffstat (limited to 'mips_new_tc')
-rw-r--r--mips_new_tc/main.sail3
-rw-r--r--mips_new_tc/mips_prelude.sail1
-rw-r--r--mips_new_tc/mips_wrappers.sail1
3 files changed, 4 insertions, 1 deletions
diff --git a/mips_new_tc/main.sail b/mips_new_tc/main.sail
index 71beb582..ee77f4dc 100644
--- a/mips_new_tc/main.sail
+++ b/mips_new_tc/main.sail
@@ -8,7 +8,8 @@ function fetch_and_execute () = {
inBranchDelay = branchPending;
branchPending = 0b0;
nextPC = if inBranchDelay then delayedPC else PC + 4;
-
+ cp2_next_pc();
+
print_bits("PC: ", PC);
try {
let pc_pa = TranslatePC(PC);
diff --git a/mips_new_tc/mips_prelude.sail b/mips_new_tc/mips_prelude.sail
index d1302c52..9927d20e 100644
--- a/mips_new_tc/mips_prelude.sail
+++ b/mips_new_tc/mips_prelude.sail
@@ -615,4 +615,5 @@ function init_cp0_state () : unit -> unit = {
}
val init_cp2_state : unit -> unit effect {wreg}
+val cp2_next_pc: unit -> unit effect {rreg, wreg}
val dump_cp2_state : unit -> unit effect {rreg} \ No newline at end of file
diff --git a/mips_new_tc/mips_wrappers.sail b/mips_new_tc/mips_wrappers.sail
index bbb99e17..2e67a880 100644
--- a/mips_new_tc/mips_wrappers.sail
+++ b/mips_new_tc/mips_wrappers.sail
@@ -82,4 +82,5 @@ val ERETHook : unit -> unit
function ERETHook() = ()
function init_cp2_state () = skip_wreg()
+function cp2_next_pc() = {skip_wreg(); skip_rreg()}
function dump_cp2_state () = skip_rreg()