4-12
MPC7400 RISC Microprocessor Users Manual
Exception Processing
¥
The oating-point unavailable exception can be masked by setting MSR[FP].
¥
The AltiVec unavailable exception can be masked by setting MSR[VEC].
¥
IEEE oating-point enabled exceptions (a type of program exception) are ignored
when both MSR[FE0] and MSR[FE1] are cleared. If either bit is set, all IEEE
enabled oating-point exceptions are taken and cause a program exception.
¥
The trace exception is enabled by setting either MSR[SE] or MSR[BE].
4.3.2 Steps for Exception Processing
After it is determined that the exception can be taken (all instruction-caused exceptions
occurring earlier in the instruction stream have been handled, the instruction that caused the
exception is next to be retired, and by conTrming that the exception is enabled for the
exception condition), the processor does the following:
1. SRR0 is loaded with an instruction address that depends on the type of exception.
See the individual exception description for details about how this register is used
for speciTc exceptions.
2. SRR1[0, 7D9] are cleared;
SRR1[1D5, 10D15] are loaded with information speciTc to the exception type;
and SRR1[6, 16D31] are loaded with a copy of the corresponding MSR bits.
3. The MSR is set as described in Table 4-4. The new values take effect as the Trst
instruction of the exception-handler routine is fetched.
Note that MSR[IR] and MSR[DR] are cleared for all exception types; therefore,
address translation is disabled for both instruction fetches and data accesses
beginning with the Trst instruction of the exception-handler routine.
4. Instruction fetch and execution resumes, using the new MSR value, at a location
speciTc to the exception type. The location is determined by adding the exception's
vector (see Table 4-2) to the base address determined by MSR[IP]. If IP is cleared,
exceptions are vectored to the physical address 0x000
n_nnnn
. If IP is set, exceptions
are vectored to the physical address 0xFFF
n_nnnn
. For a machine check exception
that occurs when MSR[ME] = 0 (machine check exceptions are disabled), the
checkstop state is entered (the machine stops executing instructions). See
Section 4.6.2, òMachine Check Exception (0x00200).ó
4.3.3 Setting MSR[RI]
An operating system may handle MSR[RI] as follows:
¥
In the machine check and system reset exceptionsIf MSR[RI] is cleared, the
exception is not recoverable. If it is set, the exception is recoverable with respect to
the processor.