From: Gabe Black Date: Wed, 16 Oct 2019 04:22:35 +0000 (-0700) Subject: arm: Don't force the ArmISA::TLB in vtophys.cc. X-Git-Tag: v19.0.0.0~434 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=066349d784b6709df5994857b8f35c37fda7c564;p=gem5.git arm: Don't force the ArmISA::TLB in vtophys.cc. 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 Reviewed-by: Giacomo Travaglini Maintainer: Giacomo Travaglini --- diff --git a/src/arch/arm/vtophys.cc b/src/arch/arm/vtophys.cc index 3a6731541..4b100f4e2 100644 --- a/src/arch/arm/vtophys.cc +++ b/src/arch/arm/vtophys.cc @@ -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(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(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(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());