summaryrefslogtreecommitdiff
path: root/mips/mips_wrappers.sail
diff options
context:
space:
mode:
Diffstat (limited to 'mips/mips_wrappers.sail')
-rw-r--r--mips/mips_wrappers.sail4
1 files changed, 3 insertions, 1 deletions
diff --git a/mips/mips_wrappers.sail b/mips/mips_wrappers.sail
index 25b8936b..7d9e73e6 100644
--- a/mips/mips_wrappers.sail
+++ b/mips/mips_wrappers.sail
@@ -5,11 +5,13 @@ function bool effect {wmem} MEMw_conditional_wrapper(addr, size, data) =
function bit[64] addrWrapper((bit[64]) addr, (MemAccessType) accessType, (WordType) width) =
addr
-function (bit[64]) TranslateAddress ((bit[64]) vAddr, (MemAccessType) accessType) =
+function (bit[64]) TranslateAddress ((bit[64]) vAddr, (MemAccessType) accessType) = {
+ incrementCP0Count();
if (vAddr[1..0] != 0b00) then (* bad PC alignment *)
exit (SignalExceptionBadAddr(AdEL, vAddr))
else
TLBTranslate(vAddr, accessType)
+}
function unit SignalException ((Exception) ex) = SignalExceptionMIPS(ex)