diff options
Diffstat (limited to 'src/arch/sparc/tlb.hh')
-rw-r--r-- | src/arch/sparc/tlb.hh | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/arch/sparc/tlb.hh b/src/arch/sparc/tlb.hh index 2df4fe4c8..8a4ccd69f 100644 --- a/src/arch/sparc/tlb.hh +++ b/src/arch/sparc/tlb.hh @@ -84,7 +84,7 @@ class TLB : public SimObject /** Insert a PTE into the TLB. */ void insert(Addr vpn, int partition_id, int context_id, bool real, - const PageTableEntry& PTE); + const PageTableEntry& PTE, int entry = -1); /** Given an entry id, read that tlb entries' tag. */ uint64_t TagRead(int entry); @@ -114,9 +114,13 @@ class TLB : public SimObject void TLB::clearUsedBits(); + void writeTagAccess(ThreadContext *tc, int reg, Addr va, int context); + public: TLB(const std::string &name, int size); + void dumpAll(); + // Checkpointing virtual void serialize(std::ostream &os); virtual void unserialize(Checkpoint *cp, const std::string §ion); @@ -133,6 +137,8 @@ class ITB : public TLB private: void writeSfsr(ThreadContext *tc, bool write, ContextType ct, bool se, FaultTypes ft, int asi); + void writeTagAccess(ThreadContext *tc, Addr va, int context); + friend class DTB; }; class DTB : public TLB @@ -149,6 +155,8 @@ class DTB : public TLB private: void writeSfr(ThreadContext *tc, Addr a, bool write, ContextType ct, bool se, FaultTypes ft, int asi); + void writeTagAccess(ThreadContext *tc, Addr va, int context); + }; |