diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2011-09-19 06:17:20 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2011-09-19 06:17:20 -0700 |
commit | 48b6636d01da9b1200774d874cecb7f2e945c785 (patch) | |
tree | 7f000f5229876d758f384f643405a8718874a8f4 /src/arch/mips/tlb.cc | |
parent | efcded334c5e17ac2f328ee4af008925ae3b3d08 (diff) | |
download | gem5-48b6636d01da9b1200774d874cecb7f2e945c785.tar.xz |
MIPS: Consolidate TLB related faults.
Pass in a bool to indicate if the fault is from a store instead of having two
different classes. The classes were also misleadingly named since loads are
also processed by the DTB but should return ITB faults since they aren't
stores. The TLB may be returning the wrong fault in this case, but I haven't
looked at it closely.
Diffstat (limited to 'src/arch/mips/tlb.cc')
-rw-r--r-- | src/arch/mips/tlb.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/arch/mips/tlb.cc b/src/arch/mips/tlb.cc index 1336ee7d0..31595b53d 100644 --- a/src/arch/mips/tlb.cc +++ b/src/arch/mips/tlb.cc @@ -352,7 +352,7 @@ TLB::translateInst(RequestPtr req, ThreadContext *tc) } if (Valid == false) { - return new ItbInvalidFault(Asid, vaddr, vpn); + return new InvalidFault(Asid, vaddr, vpn, false); } else { // Ok, this is really a match, set paddr Addr PAddr; @@ -368,7 +368,7 @@ TLB::translateInst(RequestPtr req, ThreadContext *tc) } } else { // Didn't find any match, return a TLB Refill Exception - return new ItbRefillFault(Asid, vaddr, vpn); + return new RefillFault(Asid, vaddr, vpn, false); } } return checkCacheability(req); @@ -447,7 +447,7 @@ TLB::translateData(RequestPtr req, ThreadContext *tc, bool write) } if (Valid == false) { - return new DtbInvalidFault(Asid, vaddr, VPN); + return new InvalidFault(Asid, vaddr, VPN, true); } else { // Ok, this is really a match, set paddr if (!Dirty) { @@ -466,7 +466,7 @@ TLB::translateData(RequestPtr req, ThreadContext *tc, bool write) } } else { // Didn't find any match, return a TLB Refill Exception - return new DtbRefillFault(Asid, vaddr, VPN); + return new RefillFault(Asid, vaddr, VPN, true); } } return checkCacheability(req); |