
MOTOROLA
Chapter 5. Exceptions
5-5
Exception Classes
Program
00700
A program exception is caused by one of the following exception conditions,
which correspond to bit settings in SRR1 and arise during execution of an
instruction.
Floating-point enabled exception—A floating-point enabled exception condition
is generated when the following condition is met:
(MSR[FE0] | MSR[FE1]) & FPSCR[FEX] is 1.
FPSCR[FEX] is set by the execution of a floating-point instruction that causes
an enabled exception or by the execution of one of the ‘move to FPSCR’
instructions that results in both an exception condition bit and its corresponding
enable bit being set in the FPSCR.
Illegal instruction—An illegal instruction program exception is generated when
execution of an instruction is attempted with an illegal opcode or illegal
combination of opcode and extended opcode fields (including PowerPC
instructions not implemented in the core), or when execution of an optional
instruction not provided in the core is attempted (these do not include those
optional instructions that are treated as no-ops).
Privileged instruction—A privileged instruction type program exception is
generated when the execution of a privileged instruction is attempted and the
MSR register user privilege bit, MSR[PR], is set. In the G2 core, this exception
is generated for
mtspr
or
mfspr
with an invalid SPR field if SPR[0] = 1 and
MSR[PR] = 1. This may not be true for all cores that implement the PowerPC
architecture.
Trap—A trap type program exception is generated when any of the conditions
specified in a trap instruction is met.
Floating-point
unavailable
00800
A floating-point unavailable exception is caused by an attempt to execute a
floating-point instruction (including floating-point load, store, and move
instructions) when the floating-point available bit is cleared (MSR[FP] = 0).
Decrementer
00900
The decrementer exception occurs when DEC[31] changes from 0 to 1. This
exception is enabled with MSR[EE].
Critical interrupt
00A00
A critical interrupt exception is taken when the core_cint signal is asserted and
MSR[CE] = 1 (G2_LE only).
Reserved
00B00–00BFF —
System call
00C00
A system call exception occurs when a System Call (
sc
) instruction is executed.
Trace
00D00
A trace exception is taken when MSR[SE] =1 or when the currently completing
instruction is a branch and MSR[BE] =1.
Reserved
00E00
The G2 core does not generate an exception to this vector. Other devices may
use this vector for floating-point assist exceptions.
Reserved
00E10–00FFF —
Instruction
translation miss
01000
An instruction translation miss exception is caused when the effective address for
an instruction fetch cannot be translated by the ITLB.
Data load
translation miss
01100
A data load translation miss exception is caused when the effective address for a
data load operation cannot be translated by the DTLB.
Data store
translation miss
01200
A data store translation miss exception is caused when the effective address for
a data store operation cannot be translated by the DTLB, or where a DTLB hit
occurs, and the change bit in the PTE must be set due to a data store operation.
Table 5-2. Exceptions and Conditions (continued)
Exception Type
Vector Offset
(hex)
Causing Conditions
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.