summaryrefslogtreecommitdiff
path: root/src/arch/x86/tlb.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-25 10:16:21 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-25 10:16:21 -0800
commit40fdba2454c219902db7ad1abd28593de8611c2b (patch)
tree79369b7e2d1caae9f0accd45e6f9a0f53c1002f2 /src/arch/x86/tlb.hh
parent6ed47e94644f854baa33d1e9f367cc9eebd99abf (diff)
downloadgem5-40fdba2454c219902db7ad1abd28593de8611c2b.tar.xz
X86: Make the X86 TLB take advantage of delayed translations, and get rid of the fake TLB miss faults.
Diffstat (limited to 'src/arch/x86/tlb.hh')
-rw-r--r--src/arch/x86/tlb.hh15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/arch/x86/tlb.hh b/src/arch/x86/tlb.hh
index 56730983a..2467bc472 100644
--- a/src/arch/x86/tlb.hh
+++ b/src/arch/x86/tlb.hh
@@ -87,8 +87,7 @@ namespace X86ISA
class TLB : public BaseTLB
{
protected:
- friend class FakeITLBFault;
- friend class FakeDTLBFault;
+ friend class Walker;
typedef std::list<TlbEntry *> EntryList;
@@ -118,8 +117,6 @@ namespace X86ISA
protected:
Walker * walker;
-
- void walk(ThreadContext * _tc, Addr vaddr, bool write, bool execute);
#endif
public:
@@ -137,15 +134,13 @@ namespace X86ISA
EntryList freeList;
EntryList entryList;
- template<class TlbFault>
- Fault translateAtomic(RequestPtr req, ThreadContext *tc,
- bool write, bool execute);
- void translateTiming(RequestPtr req, ThreadContext *tc,
- Translation *translation, bool write, bool execute);
+ Fault translate(RequestPtr req, ThreadContext *tc,
+ Translation *translation, bool write, bool execute,
+ bool &delayedResponse, bool timing);
public:
- void insert(Addr vpn, TlbEntry &entry);
+ TlbEntry * insert(Addr vpn, TlbEntry &entry);
// Checkpointing
virtual void serialize(std::ostream &os);