arm: Don't force the ArmISA::TLB in vtophys.cc.
authorGabe Black <gabeblack@google.com>
Wed, 16 Oct 2019 04:22:35 +0000 (21:22 -0700)
committerGabe Black <gabeblack@google.com>
Thu, 17 Oct 2019 23:10:37 +0000 (23:10 +0000)
The only reason the TLB pointer is being cast to an ArmISA::TLB is so
that it can call a version of translateFunctional which takes more
arguments, when the standard version of translateFunctional just calls
that underlying function with the same arguments.

Change-Id: I3ffd3a8ecc2dda91ddca77f516e2b2ac7313a227
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21840
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>

src/arch/arm/vtophys.cc

index 3a67315416b992b3edd0319c4c43d52b72e9cd41..4b100f4e2b431e294b0811074996bba1107eac90 100644 (file)
@@ -71,7 +71,7 @@ try_translate(ThreadContext *tc, Addr addr)
     // Set up a functional memory Request to pass to the TLB
     // to get it to translate the vaddr to a paddr
     auto req = std::make_shared<Request>(0, addr, 64, 0x40, -1, 0, 0);
-    ArmISA::TLB *tlb;
+    BaseTLB *tlb;
 
     // Check the TLBs for a translation
     // It's possible that there is a valid translation in the tlb
@@ -80,13 +80,13 @@ try_translate(ThreadContext *tc, Addr addr)
     //
     // Calling translateFunctional invokes a table-walk if required
     // so we should always succeed
-    tlb = static_cast<ArmISA::TLB*>(tc->getDTBPtr());
-    fault = tlb->translateFunctional(req, tc, BaseTLB::Read, TLB::NormalTran);
+    tlb = tc->getDTBPtr();
+    fault = tlb->translateFunctional(req, tc, BaseTLB::Read);
     if (fault == NoFault)
         return std::make_pair(true, req->getPaddr());
 
-    tlb = static_cast<ArmISA::TLB*>(tc->getITBPtr());
-    fault = tlb->translateFunctional(req, tc, BaseTLB::Read, TLB::NormalTran);
+    tlb = tc->getITBPtr();
+    fault = tlb->translateFunctional(req, tc, BaseTLB::Read);
     if (fault == NoFault)
         return std::make_pair(true, req->getPaddr());