summaryrefslogtreecommitdiff
path: root/src/arch/arm/tlb.hh
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2018-02-22 14:14:48 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2018-03-23 10:24:24 +0000
commit9c8af4292004d0f2337dcc7eb45a56993e3719c9 (patch)
tree96a34214f4cb5d60db050d7b1ef1998fa3a65084 /src/arch/arm/tlb.hh
parent33bb1aa386fd6e6b4bc93797e129bc5c4baa6a36 (diff)
downloadgem5-9c8af4292004d0f2337dcc7eb45a56993e3719c9.tar.xz
arch-arm: Distinguish IS TLBI from non-IS
TLBI broadcasting was the default implementation of most of TLBI instructions. This patch applies the broadcasting behaviour only to the Inner-Shareable subset, while simpler TLB invalidation instructions only affect the PE that executes them. Change-Id: Idb01d0d4f593131f657e8fc9668112de8e4ccdcb Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/9182 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/arch/arm/tlb.hh')
-rw-r--r--src/arch/arm/tlb.hh18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/arm/tlb.hh b/src/arch/arm/tlb.hh
index 212a79f79..b0e0d0d7f 100644
--- a/src/arch/arm/tlb.hh
+++ b/src/arch/arm/tlb.hh
@@ -445,6 +445,24 @@ private:
LookupLevel lookup_level);
};
+template<typename T>
+TLB *
+getITBPtr(T *tc)
+{
+ auto tlb = static_cast<TLB *>(tc->getITBPtr());
+ assert(tlb);
+ return tlb;
+}
+
+template<typename T>
+TLB *
+getDTBPtr(T *tc)
+{
+ auto tlb = static_cast<TLB *>(tc->getDTBPtr());
+ assert(tlb);
+ return tlb;
+}
+
} // namespace ArmISA
#endif // __ARCH_ARM_TLB_HH__