faults.hh (8566:812d279f7b51) | faults.hh (8567:d154cd83c353) |
---|---|
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 --- 86 unchanged lines hidden (view full) --- 95{ 96 public: 97 bool isAlignmentFault() {return true;} 98}; 99 100class AddressErrorFault : public MipsFault<AddressErrorFault> 101{ 102 public: | 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 --- 86 unchanged lines hidden (view full) --- 95{ 96 public: 97 bool isAlignmentFault() {return true;} 98}; 99 100class AddressErrorFault : public MipsFault<AddressErrorFault> 101{ 102 public: |
103 AddressErrorFault(Addr vaddr) { badVAddr = vaddr; } |
|
103#if FULL_SYSTEM 104 void invoke(ThreadContext * tc, 105 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 106#endif 107 108}; 109 110class StoreAddressErrorFault : public MipsFault<StoreAddressErrorFault> 111{ 112 public: | 104#if FULL_SYSTEM 105 void invoke(ThreadContext * tc, 106 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 107#endif 108 109}; 110 111class StoreAddressErrorFault : public MipsFault<StoreAddressErrorFault> 112{ 113 public: |
114 StoreAddressErrorFault(Addr vaddr) { badVAddr = vaddr; } |
|
113#if FULL_SYSTEM 114 void invoke(ThreadContext * tc, 115 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 116#endif 117}; 118 119class UnimplementedOpcodeFault : public MipsFault<UnimplementedOpcodeFault> {}; 120 --- 128 unchanged lines hidden (view full) --- 249 void invoke(ThreadContext * tc, 250 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 251#endif 252}; 253 254class ItbRefillFault : public MipsFault<ItbRefillFault> 255{ 256 public: | 115#if FULL_SYSTEM 116 void invoke(ThreadContext * tc, 117 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 118#endif 119}; 120 121class UnimplementedOpcodeFault : public MipsFault<UnimplementedOpcodeFault> {}; 122 --- 128 unchanged lines hidden (view full) --- 251 void invoke(ThreadContext * tc, 252 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 253#endif 254}; 255 256class ItbRefillFault : public MipsFault<ItbRefillFault> 257{ 258 public: |
259 ItbRefillFault(Addr asid, Addr vaddr, Addr vpn) 260 { 261 entryHiAsid = asid; 262 entryHiVPN2 = vpn >> 2; 263 entryHiVPN2X = vpn & 0x3; 264 badVAddr = vaddr; 265 contextBadVPN2 = vpn >> 2; 266 } |
|
257#if FULL_SYSTEM 258 void invoke(ThreadContext * tc, 259 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 260#endif 261}; 262 263class DtbRefillFault : public MipsFault<DtbRefillFault> 264{ 265 public: | 267#if FULL_SYSTEM 268 void invoke(ThreadContext * tc, 269 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 270#endif 271}; 272 273class DtbRefillFault : public MipsFault<DtbRefillFault> 274{ 275 public: |
276 DtbRefillFault(Addr asid, Addr vaddr, Addr vpn) 277 { 278 entryHiAsid = asid; 279 entryHiVPN2 = vpn >> 2; 280 entryHiVPN2X = vpn & 0x3; 281 badVAddr = vaddr; 282 contextBadVPN2 = vpn >> 2; 283 } |
|
266#if FULL_SYSTEM 267 void invoke(ThreadContext * tc, 268 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 269#endif 270}; 271 272class ItbPageFault : public MipsFault<ItbPageFault> 273{ 274 public: 275#if FULL_SYSTEM 276 void invoke(ThreadContext * tc, 277 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 278#endif 279}; 280 281class ItbInvalidFault : public MipsFault<ItbInvalidFault> 282{ 283 public: | 284#if FULL_SYSTEM 285 void invoke(ThreadContext * tc, 286 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 287#endif 288}; 289 290class ItbPageFault : public MipsFault<ItbPageFault> 291{ 292 public: 293#if FULL_SYSTEM 294 void invoke(ThreadContext * tc, 295 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 296#endif 297}; 298 299class ItbInvalidFault : public MipsFault<ItbInvalidFault> 300{ 301 public: |
302 ItbInvalidFault(Addr asid, Addr vaddr, Addr vpn) 303 { 304 entryHiAsid = asid; 305 entryHiVPN2 = vpn >> 2; 306 entryHiVPN2X = vpn & 0x3; 307 badVAddr = vaddr; 308 contextBadVPN2 = vpn >> 2; 309 } |
|
284#if FULL_SYSTEM 285 void invoke(ThreadContext * tc, 286 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 287#endif 288}; 289 290class TLBModifiedFault : public MipsFault<TLBModifiedFault> 291{ 292 public: | 310#if FULL_SYSTEM 311 void invoke(ThreadContext * tc, 312 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 313#endif 314}; 315 316class TLBModifiedFault : public MipsFault<TLBModifiedFault> 317{ 318 public: |
319 TLBModifiedFault(Addr asid, Addr vaddr, Addr vpn) 320 { 321 entryHiAsid = asid; 322 entryHiVPN2 = vpn >> 2; 323 entryHiVPN2X = vpn & 0x3; 324 badVAddr = vaddr; 325 contextBadVPN2 = vpn >> 2; 326 } |
|
293#if FULL_SYSTEM 294 void invoke(ThreadContext * tc, 295 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 296#endif 297}; 298 299class DtbInvalidFault : public MipsFault<DtbInvalidFault> 300{ 301 public: | 327#if FULL_SYSTEM 328 void invoke(ThreadContext * tc, 329 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 330#endif 331}; 332 333class DtbInvalidFault : public MipsFault<DtbInvalidFault> 334{ 335 public: |
336 DtbInvalidFault(Addr asid, Addr vaddr, Addr vpn) 337 { 338 entryHiAsid = asid; 339 entryHiVPN2 = vpn >> 2; 340 entryHiVPN2X = vpn & 0x3; 341 badVAddr = vaddr; 342 contextBadVPN2 = vpn >> 2; 343 } |
|
302#if FULL_SYSTEM 303 void invoke(ThreadContext * tc, 304 StaticInst::StaticInstPtr inst = nullStaticInstPtr); 305#endif 306}; 307 308class FloatEnableFault : public MipsFault<FloatEnableFault> {}; 309class ItbMissFault : public MipsFault<ItbMissFault> {}; --- 13 unchanged lines hidden --- | 344#if FULL_SYSTEM 345 void invoke(ThreadContext * tc, 346 StaticInst::StaticInstPtr inst = nullStaticInstPtr); 347#endif 348}; 349 350class FloatEnableFault : public MipsFault<FloatEnableFault> {}; 351class ItbMissFault : public MipsFault<ItbMissFault> {}; --- 13 unchanged lines hidden --- |