
4-30
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
Trap—A trap type program exception is generated when any of the conditions
specified in a trap instruction is met.
4.5.7.1 IEEE Floating-Point Exception Program Exceptions
Floating-point exceptions (not supported on the EC603e microprocessor) are signaled by
condition bits set in the floating-point status and control register (FPSCR). They can cause
the system floating-point enabled exception handler to be invoked. The 603e handles all
floating-point exceptions precisely. The 603e implements the FPSCR as it is defined by the
PowerPC architecture; for more information about the FPSCR, see
The Programming
Environments Manual
.
Floating-point operations that change exception sticky bits in the FPSCR may suffer a
performance penalty. When an exception is disabled in the FPSCR and MSR[FE] = 0,
updates to the FPSCR exception sticky bits are serialized at the completion stage. This
serialization may result in a one- or two-cycle execution delay. The penalty is incurred only
when the exception bit is changed and not on subsequent operations with the same
exception. See Chapter 6, “Instruction Timing,” for a full description of completion
serialization.
When an exception is enabled in the FPSCR, the instruction traps to the emulation trap
exception vector without updating the FPSCR or the target FPR. The emulation trap
exception handler is required to complete the instruction. The emulation trap exception
handler is invoked regardless of the FE setting in the MSR.
The two IEEE floating-point imprecise modes, defined by the PowerPC architecture when
MSR[FE0]
≠
MSR[FE1], are treated as precise exceptions (that is, MSR[FE0] =
MSR[FE1] = 1). This is regardless of the setting of MSR[NI].
For the highest and most predictable floating-point performance, all exceptions should be
disabled in the FPSCR and MSR. For more information about the program exception, see
The Programming Environments Manual
.
4.5.7.2 Illegal, Reserved, and Unimplemented Instructions
Program Exceptions
In accordance with the PowerPC architecture, the 603e considers all instructions defined
for 64-bit implementations and unimplemented optional instructions, such as
fsqrt
,
eciwx
,
and
ecowx
as illegal and takes a program exception when one of these instructions is
encountered. Likewise, if a supervisor-level instruction is encountered when the processor
is in user-level mode, a privileged instruction-type program exception is taken.
The 603e implements some instructions, such as double-precision floating-point and
load/store string instructions in software. These instructions take the 603e-specific
emulation trap exception (0x01600) rather than a program exception.