Intel® IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor
September 2006 DM
Order Number: 252480-006US 113
Intel XScale® Processor—Intel® IXP42X product line and IXC1100 control plane processors
of the instruction not matching the CC flags. In the case of back-to-back branches the
word count would be 0 indicating that no instructions executed after the last branch
and before the current one.
A rollover m essage is use d to keep track of long traces of code that d o not have con trol
flow changes. The rollover message means that 16 instructions have executed since
the last message byte was written to the trace buffer.
If the incremental counter reaches its maximum value of 15, a rollover message is
written to the trace buffer following the next instruction (which will be the 16th
instruction to execute). This is shown in Example 13. The count in the rollover message
is 0b1111, indicating that 15 instructions have executed after the last branch and
before the current non-branch instruction that caused the rollover message.
If the 16th instruction is a branch (direct or indirect), the appropriate branch message
is placed in the trace buffer instead of the roll-over message. The incremental counter
is still set to 0b1111, meaning 15 instructions executed between the last branch and
the current branch.
3.6.13.1.3 Address Bytes
Only indirect branch entries contain address bytes in addition to the message byte.
Indirect branch entries always have four address bytes indicating the target of that
indirect branch. When reading the trace buffer the MSB of the target address is read
out first; the LSB is the fourth byte read out; and the indirect branch message byte is
the fifth byte read out. The byte organization of the indirect branch message is shown
in Figure 22.
Example 13. Rollover Messages Examples
count = 5
BL label1
count = 0
MOV
count = 1
MOV
count = 2
MOV
...
count = 14
MOV
count = 15
MOV
count = 0
rollover message placed in trace buffer after 16th instruction executes
count = 0b1111
branch message placed in trace buffer after branch executes
count = 0b0101