12.10 CPU-Local Events

<< Click to Display Table of Contents >>

Navigation:  ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 12 – AlphaCPU Core >

12.10 CPU-Local Events

AlphaCPU manages CPU-local pending events via PendingEvent_cpuLocal — a lightweight structure separate from FaultDispatcher's architectural events. These are implementation-level events, not architectural exceptions:

 

enum class PendingEventType { None, CodeModification, CacheInvalidation };

 

struct PendingEvent_cpuLocal {

 PendingEventType type;

 quint64 startPC, endPC, eventData;

};

 

handlePendingEventInLoop() processes these at the top of each iteration: CodeModification flushes the pipeline and invalidates the IBox decode cache (m_iBox→invalidateDecodeCache()); CacheInvalidation invalidates the decode cache without a pipeline flush.

 

handleCodeModification(startPC, endPC) queues a code modification event — called when a store modifies memory that may contain cached decoded instructions (self-modifying code support).

 

See Also: 4.4 IBox - Instruction Box (decode cache).