diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2011-09-19 06:17:19 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2011-09-19 06:17:19 -0700 |
commit | 7e704c9f51a5ed60e46299f7b1dcef6d668b3ff6 (patch) | |
tree | 6f8ca9bada6f5819a1270bfb6e7cc0c27071c214 /src/arch/mips/faults.hh | |
parent | 27388c0fe0da3b47e112478c787dd4bc78e32562 (diff) | |
download | gem5-7e704c9f51a5ed60e46299f7b1dcef6d668b3ff6.tar.xz |
MIPS: Add constructors to the fault classes.
Diffstat (limited to 'src/arch/mips/faults.hh')
-rw-r--r-- | src/arch/mips/faults.hh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/arch/mips/faults.hh b/src/arch/mips/faults.hh index 049140229..055aa597e 100644 --- a/src/arch/mips/faults.hh +++ b/src/arch/mips/faults.hh @@ -100,6 +100,7 @@ class AlignmentFault : public MipsFault<AlignmentFault> class AddressErrorFault : public MipsFault<AddressErrorFault> { public: + AddressErrorFault(Addr vaddr) { badVAddr = vaddr; } #if FULL_SYSTEM void invoke(ThreadContext * tc, StaticInstPtr inst = StaticInst::nullStaticInstPtr); @@ -110,6 +111,7 @@ class AddressErrorFault : public MipsFault<AddressErrorFault> class StoreAddressErrorFault : public MipsFault<StoreAddressErrorFault> { public: + StoreAddressErrorFault(Addr vaddr) { badVAddr = vaddr; } #if FULL_SYSTEM void invoke(ThreadContext * tc, StaticInstPtr inst = StaticInst::nullStaticInstPtr); @@ -254,6 +256,14 @@ class BreakpointFault : public MipsFault<BreakpointFault> 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); @@ -263,6 +273,14 @@ class ItbRefillFault : public MipsFault<ItbRefillFault> class DtbRefillFault : public MipsFault<DtbRefillFault> { public: + DtbRefillFault(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); @@ -281,6 +299,14 @@ class ItbPageFault : public MipsFault<ItbPageFault> class ItbInvalidFault : public MipsFault<ItbInvalidFault> { public: + ItbInvalidFault(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); @@ -290,6 +316,14 @@ class ItbInvalidFault : public MipsFault<ItbInvalidFault> class TLBModifiedFault : public MipsFault<TLBModifiedFault> { public: + TLBModifiedFault(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); @@ -299,6 +333,14 @@ class TLBModifiedFault : public MipsFault<TLBModifiedFault> 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); |