|
<< Click to Display Table of Contents >> Navigation: ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 7 - Exceptions, Faults, and Interrupts > 7.3 ExceptionClass Classification |
Beyond the high-level PendingEventKind, every event carries a fine-grained ExceptionClass_EV6 classification that determines the specific PAL vector and delivery semantics. The full classification set:
enum class ExceptionClass_EV6 : quint8 {
None,
Reset, // RESET (anytime)
MachineCheck, // MCHK (anytime, highest priority)
InternalProcessorError,
BugCheck,
Arithmetic, // ARITH (anytime)
Interrupt, // INTERRUPT (anytime)
DStream, // D-stream errors
ItbMiss, // ITB_MISS (instruction TLB)
ItbAcv, // ITB access violation
OpcDec, // OPCDEC (illegal instruction)
OpcDecFault,
Fen, // FEN (FP enable fault)
Unalign, // Alignment fault
Dfault, // Data fault (general)
DtbAcv, // DTB access violation
Dtb_miss_double_4, // DTB double miss (level 4)
Dtb_miss_single, // DTB single miss
Dtb_miss_native, // DTB native miss
MT_FPCR, // FPCR write side-effect
IllegalInstruction,
MemoryFault,
SoftwareTrap,
BreakPoint,
Panic,
General,
SubsettedInstruction,
SystemService,
PerformanceMonitor,
PrivilegeViolation, // PAL mode violation
ReservedOperand,
CallPal // CALL_PAL dispatch
};
Each ExceptionClass maps to a specific PAL vector ID (PalVectorId_EV6) during event preparation. The FaultDispatcher resolves the vector at delivery time, not at detection time.
See Also: exceptionLib/ExceptionClass_EV6.h; palLib_EV6/PalVectorId_refined.h.