
5-26
G2 PowerPC Core Reference Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Exception Definitions
The execution of any load/store instruction to a direct-store segment (SR[T] = 1)
A data access crosses from a memory segment (SR[T] = 0) into a direct-store
segment (SR[T] = 1)
Finally, the G2_LE core causes a DSI exception when either the DABR or DABR2 is
enabled and the address of an access matches with the value in the CEA field and the
breakpoint is enabled for the type of access (read or write) in DABR/DABR2. See
Chapter 11, “Debug Features,” and Section 2.1.2.15, “Data Address Breakpoint Register
(DABR and DABR2)—G2_LE Only,” for more information.
DSI exceptions can be generated by load/store instructions and cache control instructions
(
dcbi
,
dcbz
,
dcbst
, and
dcbf
). Note that the
dcbi
instruction should never be used on the
G2 core.
The G2 core supports the crossing of page boundaries. However, if the second page has a
translation error or protection violation associated with it, the G2 core takes the DSI
exception in the middle of the instruction. In this case, the data address register (DAR)
always points to a byte address in the first word of the offending page.
If an
stwcx.
instruction has an effective address for which a normal store operation would
cause a DSI exception, the G2 core takes the DSI exception without checking for the
reservation.
If the XER indicates that the byte count for an
lswi
or
stswi
instruction is zero, a DSI
exception does not occur, regardless of the effective address.
The condition that caused the exception is defined in the DSISR. These conditions also use
the data address register (DAR) as shown in Table 5-14.
When a DSI exception is taken, instruction execution for the handler begins at offset
0x00300 from the physical base address indicated by MSR[IP].
The architecture permits certain instructions to be partially executed when they cause a DSI
exception. These are as follows:
Load multiple or load string instructions—some registers in the range of registers to
be loaded may have been loaded.
Store multiple or store string instructions—some bytes of memory in the range
addressed may have been updated.
In these cases, the number of registers and amount of memory altered are instruction- and
boundary-dependent. However, memory protection is not violated. Furthermore, if some of
the data accessed is in direct-store space (SR[T] = 1) and the instruction is not supported
for direct-store accesses, the locations in direct-store space are not accessed.
For update forms, the update register (
r
A) is not altered.
F
Freescale Semiconductor, Inc.
n
.