faults.hh (8567:d154cd83c353) | faults.hh (8568:83f728db3332) |
---|---|
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 --- 77 unchanged lines hidden (view full) --- 86}; 87 88class NonMaskableInterrupt : public MipsFault<NonMaskableInterrupt> 89{ 90 public: 91 bool isNonMaskableInterrupt() {return true;} 92}; 93 | 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 --- 77 unchanged lines hidden (view full) --- 86}; 87 88class NonMaskableInterrupt : public MipsFault<NonMaskableInterrupt> 89{ 90 public: 91 bool isNonMaskableInterrupt() {return true;} 92}; 93 |
94class AlignmentFault : public MipsFault<AlignmentFault> 95{ 96 public: 97 bool isAlignmentFault() {return true;} 98}; 99 | |
100class AddressErrorFault : public MipsFault<AddressErrorFault> 101{ 102 public: 103 AddressErrorFault(Addr vaddr) { badVAddr = vaddr; } 104#if FULL_SYSTEM 105 void invoke(ThreadContext * tc, 106 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 107#endif --- 5 unchanged lines hidden (view full) --- 113 public: 114 StoreAddressErrorFault(Addr vaddr) { badVAddr = vaddr; } 115#if FULL_SYSTEM 116 void invoke(ThreadContext * tc, 117 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 118#endif 119}; 120 | 94class AddressErrorFault : public MipsFault<AddressErrorFault> 95{ 96 public: 97 AddressErrorFault(Addr vaddr) { badVAddr = vaddr; } 98#if FULL_SYSTEM 99 void invoke(ThreadContext * tc, 100 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 101#endif --- 5 unchanged lines hidden (view full) --- 107 public: 108 StoreAddressErrorFault(Addr vaddr) { badVAddr = vaddr; } 109#if FULL_SYSTEM 110 void invoke(ThreadContext * tc, 111 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 112#endif 113}; 114 |
121class UnimplementedOpcodeFault : public MipsFault<UnimplementedOpcodeFault> {}; 122 123class TLBRefillIFetchFault : public MipsFault<TLBRefillIFetchFault> 124{ 125 public: 126 void invoke(ThreadContext * tc, 127 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 128}; 129 130class TLBInvalidIFetchFault : public MipsFault<TLBInvalidIFetchFault> 131{ 132 public: 133 void invoke(ThreadContext * tc, 134 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 135}; 136 137class NDtbMissFault : public MipsFault<NDtbMissFault> {}; 138class PDtbMissFault : public MipsFault<PDtbMissFault> {}; 139class DtbPageFault : public MipsFault<DtbPageFault> {}; 140class DtbAcvFault : public MipsFault<DtbAcvFault> {}; 141 | |
142static inline Fault genMachineCheckFault() 143{ 144 return new MachineCheckFault; 145} 146 | 115static inline Fault genMachineCheckFault() 116{ 117 return new MachineCheckFault; 118} 119 |
147static inline Fault genAlignmentFault() 148{ 149 return new AlignmentFault; 150} 151 | |
152class ResetFault : public MipsFault<ResetFault> 153{ 154 public: 155 void invoke(ThreadContext * tc, 156 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 157 158}; 159 --- 8 unchanged lines hidden (view full) --- 168 169class SoftResetFault : public MipsFault<SoftResetFault> 170{ 171 public: 172 void invoke(ThreadContext * tc, 173 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 174}; 175 | 120class ResetFault : public MipsFault<ResetFault> 121{ 122 public: 123 void invoke(ThreadContext * tc, 124 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 125 126}; 127 --- 8 unchanged lines hidden (view full) --- 136 137class SoftResetFault : public MipsFault<SoftResetFault> 138{ 139 public: 140 void invoke(ThreadContext * tc, 141 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 142}; 143 |
176class DebugSingleStep : public MipsFault<DebugSingleStep> 177{ 178 public: 179 void invoke(ThreadContext * tc, 180 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 181}; 182 183class DebugInterrupt : public MipsFault<DebugInterrupt> 184{ 185 public: 186 void invoke(ThreadContext * tc, 187 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 188}; 189 | |
190class CoprocessorUnusableFault : public MipsFault<CoprocessorUnusableFault> 191{ 192 protected: 193 int coProcID; 194 public: 195 CoprocessorUnusableFault(int _procid) : coProcID(_procid) 196 {} 197 --- 10 unchanged lines hidden (view full) --- 208 209class ThreadFault : public MipsFault<ThreadFault> 210{ 211 public: 212 void invoke(ThreadContext * tc, 213 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 214}; 215 | 144class CoprocessorUnusableFault : public MipsFault<CoprocessorUnusableFault> 145{ 146 protected: 147 int coProcID; 148 public: 149 CoprocessorUnusableFault(int _procid) : coProcID(_procid) 150 {} 151 --- 10 unchanged lines hidden (view full) --- 162 163class ThreadFault : public MipsFault<ThreadFault> 164{ 165 public: 166 void invoke(ThreadContext * tc, 167 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 168}; 169 |
216class ArithmeticFault : public MipsFault<ArithmeticFault> | 170class IntegerOverflowFault : public MipsFault<IntegerOverflowFault> |
217{ 218 protected: 219 bool skipFaultingInstruction() {return true;} 220 public: 221#if FULL_SYSTEM 222 void invoke(ThreadContext * tc, 223 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 224#endif --- 57 unchanged lines hidden (view full) --- 282 contextBadVPN2 = vpn >> 2; 283 } 284#if FULL_SYSTEM 285 void invoke(ThreadContext * tc, 286 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 287#endif 288}; 289 | 171{ 172 protected: 173 bool skipFaultingInstruction() {return true;} 174 public: 175#if FULL_SYSTEM 176 void invoke(ThreadContext * tc, 177 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 178#endif --- 57 unchanged lines hidden (view full) --- 236 contextBadVPN2 = vpn >> 2; 237 } 238#if FULL_SYSTEM 239 void invoke(ThreadContext * tc, 240 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 241#endif 242}; 243 |
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; --- 35 unchanged lines hidden (view full) --- 342 contextBadVPN2 = vpn >> 2; 343 } 344#if FULL_SYSTEM 345 void invoke(ThreadContext * tc, 346 StaticInst::StaticInstPtr inst = nullStaticInstPtr); 347#endif 348}; 349 | 244class ItbInvalidFault : public MipsFault<ItbInvalidFault> 245{ 246 public: 247 ItbInvalidFault(Addr asid, Addr vaddr, Addr vpn) 248 { 249 entryHiAsid = asid; 250 entryHiVPN2 = vpn >> 2; 251 entryHiVPN2X = vpn & 0x3; --- 35 unchanged lines hidden (view full) --- 287 contextBadVPN2 = vpn >> 2; 288 } 289#if FULL_SYSTEM 290 void invoke(ThreadContext * tc, 291 StaticInst::StaticInstPtr inst = nullStaticInstPtr); 292#endif 293}; 294 |
350class FloatEnableFault : public MipsFault<FloatEnableFault> {}; 351class ItbMissFault : public MipsFault<ItbMissFault> {}; 352class ItbAcvFault : public MipsFault<ItbAcvFault> {}; 353class IntegerOverflowFault : public MipsFault<IntegerOverflowFault> {}; 354 | |
355class DspStateDisabledFault : public MipsFault<DspStateDisabledFault> 356{ 357 public: 358 void invoke(ThreadContext * tc, 359 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 360}; 361 362} // namespace MipsISA 363 364#endif // __MIPS_FAULTS_HH__ | 295class DspStateDisabledFault : public MipsFault<DspStateDisabledFault> 296{ 297 public: 298 void invoke(ThreadContext * tc, 299 StaticInstPtr inst = StaticInst::nullStaticInstPtr); 300}; 301 302} // namespace MipsISA 303 304#endif // __MIPS_FAULTS_HH__ |