![](http://datasheet.mmic.net.cn/230000/79RC32438-200BB_datasheet_15568909/79RC32438-200BB_483.png)
IDT EJTAG System
EJTAG Processor Core Extensions
79RC32438 User Reference Manual
20 - 17
November 4, 2002
Notes
Debug Data Break Load/Store Imprecise Exception
A Debug Data Break Load/Store Imprecise exception occurs when a data hardware breakpoint matches
a load/store access of an executed load/store instruction, if it is not possible to take a precise debug excep-
tion on the instruction. This case occurs when a data hardware breakpoint was set up with a value
compare, and a load access did not return data until after the load instruction had left the pipeline as for
non-blocking loads. The DEPC register and the DBD bit in the Debug register indicate an instruction later in
the execution flow instead of the load/store instruction that caused the data hardware breakpoint to match.
The DDBLImpr/DDBSImpr bits in the Debug register indicate that a Debug Data Break Load/Store Impre-
cise exception occurred. The instruction that caused the Debug Data Break Load/Store Imprecise excep-
tion will have completed. It updates its destination register, and is not executed on return from the debug
handler.
Imprecise debug exceptions from data hardware breakpoints are indicated together with another debug
exception if the load/store transaction that made the data hardware breakpoint match did not complete until
after another debug exception occurred. In this case, the other debug exception was the cause of entering
Debug Mode, so the DEPC register and the DBD bit in Debug register point to this instruction. DDBLImpr/
DDBSImpr are set concurrently with the status bit for that debug exception.
The SYNC instruction, followed by appropriate spacing (as described in section “SYNC Instruction
Behavior” on page 20-11 and section “CP0 and dseg Hazards” on page 20-12), must be executed in Debug
Mode before the DDBLImpr and DDBSImpr bits in the Debug register and the BS bits for the data hardware
breakpoint are read in order to ensure that all imprecise breaks are resolved and the bits are fully updated.
A match of the data hardware breakpoint is indicated in DDBLImpr/DDBSImpr so the debug handler can
handle this together with the debug exception.
This scheme ensures that all breakpoints matching due to code executed before the debug exception
are indicated by the DDBLImpr, DDBSImpr, and BS bits for the following debug handler. Matches are
neither queued nor do they cause debug exceptions at a later point. A debug exception occurring later than
the debug exception handler is therefor caused by code executed in Non-Debug Mode after the debug
exception handler.
Debug Register Debug Status Bit Set
DDBLImpr for a load instruction or DDBSImpr for a store instruction
Additional State Saved
None
Entry Vector Used
Debug exception vector
Debug Single Step Exception
When single-step mode is enabled, a Debug Single Step exception occurs each time the processor has
taken a single execution step in Non-Debug Mode. An execution step is a single instruction, or an instruc-
tion pair consisting of a jump/branch instruction and the instruction in the associated delay slot. The SSt bit
in the Debug register enables Debug Single Step exceptions. They are disabled on the first execution step
after a DERET.
The DEPC register points to the instruction on which the Debug Single Step exception occurred, which
is also the next instruction to execute when returning from Debug Mode. The debug software can examine
the system state before this instruction is executed. Thus the DEPC will not point to the instruction(s) that
have just executed in the execution step, but rather the instruction following the execution step. The Debug
Single Step exception never occurs on an instruction in a jump/branch delay slot, because the jump/branch
and the instruction in the delay slot are always executed in one execution step; thus the DBD bit in the
Debug register is never set for a Debug Single Step exception.