4-8
MPC7400 RISC Microprocessor Users Manual
Exception Processing
System reset and machine check exceptions may occur at any time and are not delayed even
if an exception is being handled. As a result, state information for an interrupted exception
may be lost; therefore, these exceptions are typically nonrecoverable. An exception may not
be taken immediately when it is recognized.
4.3 Exception Processing
When an exception is taken, the processor uses SRR0 and SRR1 to save the contents of the
MSR for the current context and to identify where instruction execution should resume after
the exception is handled.
When an exception occurs, the address saved in SRR0 helps determine where instruction
processing should resume when the exception handler returns control to the interrupted
process. Depending on the exception, this may be the address in SRR0 or at the next address
in the program ow. All instructions in the program ow preceding this one will have
completed execution and no subsequent instruction will have begun execution. This may be
the address of the instruction that caused the exception or the next one (as in the case of a
system call, trace, or trap exception). The SRR0 register is shown in Figure 4-1
.
Figure 4-1. Machine Status Save/Restore Register 0 (SRR0)
10
DSI
DSI due to BAT/page protection violation (DSISR[4]) or
lwarx
/
stwcx.
to BAT entry
with write-through attributes (W = 1) or to BAT entry with caching-allowed attributes
(I = 0) but with a locked L1 data cache (DSISR[5])
Note that if both occur simultaneously, both bits 4 and 5 of the DSISR are set.
11
DSI
Any access except cache operations to a segment where SR[T] = 1 (DSISR[5]) or
an access crosses from a T = 0 segment to one where T = 1 (DSISR[5])
12
DSI
TLB page protection violation or
lwarx
/
stwcx.
to page table entry with
write-through attributes (W = 1) or to a page table entry with caching-allowed
attributes (I = 0) but with a locked L1 data cache (DSISR[5]).
Note that if both occur simultaneously, both bits 4 and 5 of the DSISR are set.
13
DSI
DABR address match (DSISR[11]). Note that even though DSISR[5] and
DSISR[11] are set by exceptions with different priorities, they can be set
simultaneously.
14
AltiVec assist
Denormalized data detected as input or output in the AltiVec vector oating-point
unit (VFPU) while in Java mode
Post-Instruction Execution Exceptions
15
Trace
MSR[SE] = 1 (or MSR[BE] = 1 for branches)
Table 4-3. MPC7400 Exception Priorities (Continued)
Priority
Exception
Cause
SRR0 (Holds EA for Instruction in Interrupted Program Flow)
0
31