Chapter 4. Exceptions
4-1
Chapter 4
Exceptions
The OEA portion of the PowerPC architecture deTnes the mechanism by which PowerPC
processors implement exceptions (referred to as interrupts in the architecture speciTcation).
Exception conditions may be deTned at other levels of the architecture. For example, the
UISA deTnes conditions that may cause oating-point exceptions; the OEA deTnes the
mechanism by which the exception is taken.
AltiVec Technology and the Exception Model
Only the three following exceptions may result from execution of an AltiVec instruction:
¥
An AltiVec unavailable exception occurs with an attempt to execute any non-stream
AltiVec instruction with MSR[VEC] = 0. After this exception occurs, execution
resumes at offset 0x00F20 from the base real address indicated by MSR[IP]. This
exception does not happen for data streaming instructions (
dst
[
t
],
dstst
[
t
]
dss
, and
dssall
). Also note that the VRSAVE register is not protected by this exception (this
is consistent with the AltiVec speciTcation).
¥
A DSI exception occurs only if an AltiVec load or store operation encounters a page
fault (does not Tnd a valid PTE during a table search operation) or a protection
violation. Also a DSI exception occurs if an AltiVec load or store attempts to access
a T = 1 (direct-store) memory location.
¥
An AltiVec assist exception may occur if an AltiVec oating-point instruction
detects denormalization data as an input or output in Java mode.
The PowerPC exception mechanism allows the processor to change to supervisor state as a
result of unusual conditions arising in the execution of instructions and from external
signals, bus errors, or various internal conditions. When exceptions occur, information
about the state of the processor is saved to certain registers and the processor begins
execution at an address (exception vector) predetermined for each exception. Processing of
exceptions begins in supervisor mode.
Although multiple exception conditions can map to a single exception vector, often a more
speciTc condition may be determined by examining a register associated with the
exceptionfor example, the DSISR and the oating-point status and control register
(FPSCR). Also, software can explicitly enable or disable some exception conditions.