tlb: Don't separate the TLB classes into an instruction TLB and a data TLB

This commit is contained in:
Gabe Black
2009-04-08 22:21:27 -07:00
parent 08043c777f
commit 7b5a96f06b
34 changed files with 309 additions and 600 deletions

View File

@@ -34,7 +34,7 @@
#include "sim/tlb.hh"
Fault
GenericTLB::translateAtomic(RequestPtr req, ThreadContext * tc, bool)
GenericTLB::translateAtomic(RequestPtr req, ThreadContext * tc, bool, bool)
{
#if FULL_SYSTEM
panic("Generic translation shouldn't be used in full system mode.\n");
@@ -51,10 +51,11 @@ GenericTLB::translateAtomic(RequestPtr req, ThreadContext * tc, bool)
void
GenericTLB::translateTiming(RequestPtr req, ThreadContext *tc,
Translation *translation, bool write)
Translation *translation, bool write, bool execute)
{
assert(translation);
translation->finish(translateAtomic(req, tc, write), req, tc, write);
translation->finish(translateAtomic(req, tc, write, execute),
req, tc, write, execute);
}
void

View File

@@ -60,7 +60,7 @@ class BaseTLB : public SimObject
* function. Once it's called, the object is no longer valid.
*/
virtual void finish(Fault fault, RequestPtr req,
ThreadContext *tc, bool write=false) = 0;
ThreadContext *tc, bool write=false, bool execute=false) = 0;
};
};
@@ -73,9 +73,10 @@ class GenericTLB : public BaseTLB
public:
void demapPage(Addr vaddr, uint64_t asn);
Fault translateAtomic(RequestPtr req, ThreadContext *tc, bool=false);
Fault translateAtomic(RequestPtr req, ThreadContext *tc,
bool=false, bool=false);
void translateTiming(RequestPtr req, ThreadContext *tc,
Translation *translation, bool=false);
Translation *translation, bool=false, bool=false);
};
#endif // __ARCH_SPARC_TLB_HH__