7.3 ExceptionClass Classification

<< 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.