summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mips/mips_tlb.sail1
-rw-r--r--mips/mips_tlb_stub.sail2
-rw-r--r--src/Makefile6
3 files changed, 9 insertions, 0 deletions
diff --git a/mips/mips_tlb.sail b/mips/mips_tlb.sail
index e2549dd6..98cabb4d 100644
--- a/mips/mips_tlb.sail
+++ b/mips/mips_tlb.sail
@@ -58,6 +58,7 @@ function (bit[64], bool) TLBTranslate2 ((bit[64]) vAddr, (MemAccessType) accessT
}
}
+(* perform TLB translation. bool is CHERI specific TLB bits noStoreCap/suppressTag *)
function (bit[64], bool) TLBTranslateC ((bit[64]) vAddr, (MemAccessType) accessType) =
{
let currentAccessLevel = getAccessLevel() in
diff --git a/mips/mips_tlb_stub.sail b/mips/mips_tlb_stub.sail
index b2ddfca8..6c4ea057 100644
--- a/mips/mips_tlb_stub.sail
+++ b/mips/mips_tlb_stub.sail
@@ -2,3 +2,5 @@ function option<TLBIndexT> tlbSearch((bit[64]) VAddr) = None
function (bit[64]) TLBTranslate ((bit[64]) vAddr, (MemAccessType) accessType) =
vAddr
+
+function (bit[64], bool) TLBTranslateC ((bit[64]) vAddr, (MemAccessType) accessType) = (vAddr, false)
diff --git a/src/Makefile b/src/Makefile
index 573bef36..3b12e7c3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -39,6 +39,7 @@ MIPS_NOTLB_SAILS:=$(MIPS_NOTLB_SAILS_PRE) $(BITBUCKET_ROOT)/sail/etc/regfp.sail
CHERI_SAIL_DIR:=$(BITBUCKET_ROOT)/sail/cheri
+CHERI_NOTLB_SAILS:=$(MIPS_SAIL_DIR)/mips_prelude.sail $(MIPS_SAIL_DIR)/mips_tlb_stub.sail $(CHERI_SAIL_DIR)/cheri_prelude.sail $(MIPS_SAIL_DIR)/mips_insts.sail $(CHERI_SAIL_DIR)/cheri_insts.sail $(MIPS_SAIL_DIR)/mips_ri.sail $(MIPS_SAIL_DIR)/mips_epilogue.sail
CHERI_SAILS:=$(MIPS_SAIL_DIR)/mips_prelude.sail $(MIPS_SAIL_DIR)/mips_tlb.sail $(CHERI_SAIL_DIR)/cheri_prelude.sail $(MIPS_SAIL_DIR)/mips_insts.sail $(CHERI_SAIL_DIR)/cheri_insts.sail $(MIPS_SAIL_DIR)/mips_ri.sail $(MIPS_SAIL_DIR)/mips_epilogue.sail
elf:
@@ -75,6 +76,11 @@ _build/cheri.lem: $(CHERI_SAILS) ./sail.native
cd _build ;\
../sail.native -lem_ast -o cheri $(CHERI_SAILS)
+_build/cheri_notlb.lem: $(CHERI_NOTLB_SAILS) ./sail.native
+ mkdir -p _build
+ cd _build ;\
+ ../sail.native -lem_ast -o cheri_notlb $(CHERI_NOTLB_SAILS)
+
_build/mips_all.sail: $(MIPS_SAILS)
cat $(MIPS_SAILS) > $@