From a3367adaff66997044553cb9a746e101418afbdd Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 28 Aug 2007 14:30:50 -0700 Subject: Address translation: De-templatize the GenericTLB class. --HG-- extra : convert_revision : b605a90a4a1071e39f49085a839fdcd175e09fdb --- src/sim/tlb.hh | 48 +++--------------------------------------------- 1 file changed, 3 insertions(+), 45 deletions(-) (limited to 'src/sim/tlb.hh') diff --git a/src/sim/tlb.hh b/src/sim/tlb.hh index c4c171015..4239b4cf3 100644 --- a/src/sim/tlb.hh +++ b/src/sim/tlb.hh @@ -39,56 +39,14 @@ class ThreadContext; class Packet; -class GenericTLBBase : public SimObject +class GenericTLB : public SimObject { protected: - GenericTLBBase(const std::string &name) : SimObject(name) + GenericTLB(const std::string &name) : SimObject(name) {} - Fault translate(RequestPtr req, ThreadContext *tc); -}; - -template -class GenericTLB : public GenericTLBBase -{ - public: - GenericTLB(const std::string &name) : GenericTLBBase(name) - {} - - Fault translate(RequestPtr req, ThreadContext *tc, bool=false) - { - Fault fault = GenericTLBBase::translate(req, tc); - if (fault != NoFault) - return fault; - - typeof(req->getSize()) size = req->getSize(); - Addr paddr = req->getPaddr(); - - if(doSizeCheck && !isPowerOf2(size)) - panic("Invalid request size!\n"); - if (doAlignmentCheck && ((size - 1) & paddr)) - return new GenericAlignmentFault(paddr); - - return NoFault; - } -}; - -template -class GenericITB : public GenericTLB -{ public: - GenericITB(const std::string &name) : - GenericTLB(name) - {} -}; - -template -class GenericDTB : public GenericTLB -{ - public: - GenericDTB(const std::string &name) : - GenericTLB(name) - {} + Fault translate(RequestPtr req, ThreadContext *tc, bool=false); }; #endif // __ARCH_SPARC_TLB_HH__ -- cgit v1.2.3