tlb: Don't separate the TLB classes into an instruction TLB and a data TLB
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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__
|
||||
|
||||
Reference in New Issue
Block a user