diff options
Diffstat (limited to 'src/arch/arm/tlb.hh')
-rw-r--r-- | src/arch/arm/tlb.hh | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/src/arch/arm/tlb.hh b/src/arch/arm/tlb.hh index 59fe1a60d..fea317ef3 100644 --- a/src/arch/arm/tlb.hh +++ b/src/arch/arm/tlb.hh @@ -62,6 +62,12 @@ struct TlbEntry TlbEntry() {} TlbEntry(Addr asn, Addr vaddr, Addr paddr) : _pageStart(paddr) {} + void + updateVaddr(Addr new_vaddr) + { + panic("unimplemented"); + } + Addr pageStart() { return _pageStart; @@ -92,14 +98,14 @@ class TLB : public BaseTLB void nextnlu() { if (++nlu >= size) nlu = 0; } ArmISA::PTE *lookup(Addr vpn, uint8_t asn) const; - mutable Stats::Scalar<> read_hits; - mutable Stats::Scalar<> read_misses; - mutable Stats::Scalar<> read_acv; - mutable Stats::Scalar<> read_accesses; - mutable Stats::Scalar<> write_hits; - mutable Stats::Scalar<> write_misses; - mutable Stats::Scalar<> write_acv; - mutable Stats::Scalar<> write_accesses; + mutable Stats::Scalar read_hits; + mutable Stats::Scalar read_misses; + mutable Stats::Scalar read_acv; + mutable Stats::Scalar read_accesses; + mutable Stats::Scalar write_hits; + mutable Stats::Scalar write_misses; + mutable Stats::Scalar write_acv; + mutable Stats::Scalar write_accesses; Stats::Formula hits; Stats::Formula misses; Stats::Formula invalids; @@ -136,23 +142,30 @@ class TLB : public BaseTLB void regStats(); }; -class ITB : public TLB { +class ITB : public TLB +{ public: typedef ArmTLBParams Params; ITB(const Params *p); - Fault translate(RequestPtr &req, ThreadContext *tc); + Fault translateAtomic(RequestPtr req, ThreadContext *tc); + void translateTiming(RequestPtr req, ThreadContext *tc, + Translation *translation); }; -class DTB : public TLB { +class DTB : public TLB +{ public: typedef ArmTLBParams Params; DTB(const Params *p); - Fault translate(RequestPtr &req, ThreadContext *tc, bool write = false); + Fault translateAtomic(RequestPtr req, ThreadContext *tc, bool write); + void translateTiming(RequestPtr req, ThreadContext *tc, + Translation *translation, bool write); }; -class UTB : public ITB, public DTB { +class UTB : public ITB, public DTB +{ public: typedef ArmTLBParams Params; UTB(const Params *p); |