diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-03-28 18:01:01 -0500 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-03-28 18:01:01 -0500 |
commit | c1046488e073b2535c76c473aec34fe499c149e3 (patch) | |
tree | f9952cc18768d944ffa861575f24f5269bdf69c5 /arch/alpha/tlb.hh | |
parent | 1507bfb20a4053abb9f8eb1a97bafc800a9c934f (diff) | |
download | gem5-c1046488e073b2535c76c473aec34fe499c149e3.tar.xz |
Move TLB faults into the normal Fault code. The TLB no longer fills in IPRs through its own fault() method; this is handled by the fault's invoke() methods.
arch/alpha/faults.cc:
Move TLB fault code into the normal fault invoke() method.
arch/alpha/faults.hh:
Move DTB/ITB fault handling code into their own class with a specific invoke() method. Have DTB/ITB faults derive from these classes.
Unfortunately the DtbAlignmentFault is somewhat odd; it's a normal alignment fault, but it must also set some specific IPRs.
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
Setting IPRs is now handled through the fault itself.
--HG--
extra : convert_revision : 5cb92ce2186ff79f632bfcbc9ba62a8a04400eae
Diffstat (limited to 'arch/alpha/tlb.hh')
-rw-r--r-- | arch/alpha/tlb.hh | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/alpha/tlb.hh b/arch/alpha/tlb.hh index 1c299e8b9..676345f01 100644 --- a/arch/alpha/tlb.hh +++ b/arch/alpha/tlb.hh @@ -88,9 +88,6 @@ class AlphaITB : public AlphaTLB mutable Stats::Scalar<> acv; mutable Stats::Formula accesses; - protected: - void fault(Addr pc, ExecContext *xc) const; - public: AlphaITB(const std::string &name, int size); virtual void regStats(); @@ -114,9 +111,6 @@ class AlphaDTB : public AlphaTLB Stats::Formula acv; Stats::Formula accesses; - protected: - void fault(MemReqPtr &req, uint64_t flags) const; - public: AlphaDTB(const std::string &name, int size); virtual void regStats(); |