faults.hh (8572:62d4b366546f) | faults.hh (8573:be51bef13962) |
---|---|
1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007 MIPS Technologies, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 185 unchanged lines hidden (view full) --- 194{ 195 public: 196#if FULL_SYSTEM 197 void invoke(ThreadContext * tc, 198 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 199#endif 200}; 201 | 1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007 MIPS Technologies, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 185 unchanged lines hidden (view full) --- 194{ 195 public: 196#if FULL_SYSTEM 197 void invoke(ThreadContext * tc, 198 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 199#endif 200}; 201 |
202class ItbRefillFault : public MipsFault<ItbRefillFault> | 202class TlbRefillFault : public MipsFault<TlbRefillFault> |
203{ | 203{ |
204 protected: 205 bool store; |
|
204 public: | 206 public: |
205 ItbRefillFault(Addr asid, Addr vaddr, Addr vpn) | 207 TlbRefillFault(Addr asid, Addr vaddr, Addr vpn, bool _store) : 208 store(_store) |
206 { 207 entryHiAsid = asid; 208 entryHiVPN2 = vpn >> 2; 209 entryHiVPN2X = vpn & 0x3; 210 badVAddr = vaddr; 211 contextBadVPN2 = vpn >> 2; 212 } 213#if FULL_SYSTEM 214 void invoke(ThreadContext * tc, 215 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 216#endif 217}; 218 | 209 { 210 entryHiAsid = asid; 211 entryHiVPN2 = vpn >> 2; 212 entryHiVPN2X = vpn & 0x3; 213 badVAddr = vaddr; 214 contextBadVPN2 = vpn >> 2; 215 } 216#if FULL_SYSTEM 217 void invoke(ThreadContext * tc, 218 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 219#endif 220}; 221 |
219class DtbRefillFault : public MipsFault<DtbRefillFault> | 222class TlbInvalidFault : public MipsFault<TlbInvalidFault> |
220{ | 223{ |
224 protected: 225 bool store; |
|
221 public: | 226 public: |
222 DtbRefillFault(Addr asid, Addr vaddr, Addr vpn) | 227 TlbInvalidFault(Addr asid, Addr vaddr, Addr vpn, bool _store) : 228 store(_store) |
223 { 224 entryHiAsid = asid; 225 entryHiVPN2 = vpn >> 2; 226 entryHiVPN2X = vpn & 0x3; 227 badVAddr = vaddr; 228 contextBadVPN2 = vpn >> 2; 229 } 230#if FULL_SYSTEM 231 void invoke(ThreadContext * tc, 232 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 233#endif 234}; 235 | 229 { 230 entryHiAsid = asid; 231 entryHiVPN2 = vpn >> 2; 232 entryHiVPN2X = vpn & 0x3; 233 badVAddr = vaddr; 234 contextBadVPN2 = vpn >> 2; 235 } 236#if FULL_SYSTEM 237 void invoke(ThreadContext * tc, 238 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 239#endif 240}; 241 |
236class ItbInvalidFault : public MipsFault<ItbInvalidFault> 237{ 238 public: 239 ItbInvalidFault(Addr asid, Addr vaddr, Addr vpn) 240 { 241 entryHiAsid = asid; 242 entryHiVPN2 = vpn >> 2; 243 entryHiVPN2X = vpn & 0x3; 244 badVAddr = vaddr; 245 contextBadVPN2 = vpn >> 2; 246 } 247#if FULL_SYSTEM 248 void invoke(ThreadContext * tc, 249 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 250#endif 251}; 252 | |
253class TLBModifiedFault : public MipsFault<TLBModifiedFault> 254{ 255 public: 256 TLBModifiedFault(Addr asid, Addr vaddr, Addr vpn) 257 { 258 entryHiAsid = asid; 259 entryHiVPN2 = vpn >> 2; 260 entryHiVPN2X = vpn & 0x3; 261 badVAddr = vaddr; 262 contextBadVPN2 = vpn >> 2; 263 } 264#if FULL_SYSTEM 265 void invoke(ThreadContext * tc, 266 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 267#endif 268}; 269 | 242class TLBModifiedFault : public MipsFault<TLBModifiedFault> 243{ 244 public: 245 TLBModifiedFault(Addr asid, Addr vaddr, Addr vpn) 246 { 247 entryHiAsid = asid; 248 entryHiVPN2 = vpn >> 2; 249 entryHiVPN2X = vpn & 0x3; 250 badVAddr = vaddr; 251 contextBadVPN2 = vpn >> 2; 252 } 253#if FULL_SYSTEM 254 void invoke(ThreadContext * tc, 255 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 256#endif 257}; 258 |
270class DtbInvalidFault : public MipsFault<DtbInvalidFault> 271{ 272 public: 273 DtbInvalidFault(Addr asid, Addr vaddr, Addr vpn) 274 { 275 entryHiAsid = asid; 276 entryHiVPN2 = vpn >> 2; 277 entryHiVPN2X = vpn & 0x3; 278 badVAddr = vaddr; 279 contextBadVPN2 = vpn >> 2; 280 } 281#if FULL_SYSTEM 282 void invoke(ThreadContext * tc, 283 StaticInst::StaticInstPtr inst = nullStaticInstPtr); 284#endif 285}; 286 | |
287class DspStateDisabledFault : public MipsFault<DspStateDisabledFault> 288{ 289 public: 290 void invoke(ThreadContext * tc, 291 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 292}; 293 294} // namespace MipsISA 295 296#endif // __MIPS_FAULTS_HH__ | 259class DspStateDisabledFault : public MipsFault<DspStateDisabledFault> 260{ 261 public: 262 void invoke(ThreadContext * tc, 263 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 264}; 265 266} // namespace MipsISA 267 268#endif // __MIPS_FAULTS_HH__ |