diff options
Diffstat (limited to 'src/arch/mips/faults.hh')
-rw-r--r-- | src/arch/mips/faults.hh | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/src/arch/mips/faults.hh b/src/arch/mips/faults.hh index 0b3d6ce30..dfb3b4ab5 100644 --- a/src/arch/mips/faults.hh +++ b/src/arch/mips/faults.hh @@ -199,27 +199,13 @@ class BreakpointFault : public MipsFault<BreakpointFault> #endif }; -class ItbRefillFault : public MipsFault<ItbRefillFault> -{ - public: - ItbRefillFault(Addr asid, Addr vaddr, Addr vpn) - { - entryHiAsid = asid; - entryHiVPN2 = vpn >> 2; - entryHiVPN2X = vpn & 0x3; - badVAddr = vaddr; - contextBadVPN2 = vpn >> 2; - } -#if FULL_SYSTEM - void invoke(ThreadContext * tc, - StaticInstPtr inst = StaticInst::nullStaticInstPtr); -#endif -}; - -class DtbRefillFault : public MipsFault<DtbRefillFault> +class TlbRefillFault : public MipsFault<TlbRefillFault> { + protected: + bool store; public: - DtbRefillFault(Addr asid, Addr vaddr, Addr vpn) + TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool _store) : + store(_store) { entryHiAsid = asid; entryHiVPN2 = vpn >> 2; @@ -233,10 +219,13 @@ class DtbRefillFault : public MipsFault<DtbRefillFault> #endif }; -class ItbInvalidFault : public MipsFault<ItbInvalidFault> +class TlbInvalidFault : public MipsFault<TlbInvalidFault> { + protected: + bool store; public: - ItbInvalidFault(Addr asid, Addr vaddr, Addr vpn) + TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool _store) : + store(_store) { entryHiAsid = asid; entryHiVPN2 = vpn >> 2; @@ -267,23 +256,6 @@ class TLBModifiedFault : public MipsFault<TLBModifiedFault> #endif }; -class DtbInvalidFault : public MipsFault<DtbInvalidFault> -{ - public: - DtbInvalidFault(Addr asid, Addr vaddr, Addr vpn) - { - entryHiAsid = asid; - entryHiVPN2 = vpn >> 2; - entryHiVPN2X = vpn & 0x3; - badVAddr = vaddr; - contextBadVPN2 = vpn >> 2; - } -#if FULL_SYSTEM - void invoke(ThreadContext * tc, - StaticInst::StaticInstPtr inst = nullStaticInstPtr); -#endif -}; - class DspStateDisabledFault : public MipsFault<DspStateDisabledFault> { public: |