36-38 Vol. 3C
INTEL® PROCESSOR TRACE
36.4.2.2 Target IP (TIP) Packet
IP Compression
The IP payload in a TIP. FUP, TIP.PGE, or TIP.PGD packet can vary in size, based on the mode of execution, and the
use of IP compression. IP compression is an optional compression technique the processor may choose to employ
to reduce bandwidth. With IP compression, the IP to be represented in the payload is compared with the last IP
sent out, via any of FUP, TIP, TIP.PGE, or TIP.PGD. If that previous IP had the same upper (most significant) address
bytes, those matching bytes may be suppressed in the current packet. The processor maintains an internal state of
the “Last IP” that was encoded in trace packets, thus the decoder will need to keep track of the “Last IP” state in
software, to match fidelity with packets generated by hardware. “Last IP” is initialized to zero, hence if the first IP
in the trace may be compressed if the upper bytes are zeroes.
The “IPBytes” field of the IP packets (FUP, TIP, TIP.PGE, TIP.PGD) serves to indicate how many bytes of payload are
provided, and how the decoder should fill in any suppressed bytes. The algorithm for reconstructing the IP for a
TIP/FUP packet is shown in the table below.
Table 36-17. IP Packet Definition
Name
Target IP (TIP) Packet
Packet Format
Dependencies
PacketEn
Generation Sce-
nario
Indirect branch (including un-compressed RET), far branch, interrupt,
exception, INIT, SIPI, (VM exit, VM entry,)
1
TSX abort, (EENTER, EEXIT,
ERESUME, AEX)
2
.
NOTES:
1. If IA32_VMX_MISC[bit 14] reports 1.
2. In a debug enclave.
Description
Provides the target for some control flow transfers
Application
Anytime a TIP is encountered, it indicates that control was transferred to the IP provided in the payload.
The source of this control flow change, and hence the IP or instruction to which it binds, depends on the packets
that precede the TIP. If a TIP is encountered and all preceding packets have already been bound, then the TIP will
apply to the upcoming indirect branch, far branch, or VMRESUME. However, if there was a preceding FUP that
remains unbound, it will bind to the TIP. Here, the TIP provides the target of an asynchronous event or TSX abort
that occurred at the IP given in the FUP payload. Note that there may be other packets, in addition to the FUP, which
will bind to the TIP packet. See the packet application descriptions for other packets for details.
7
6
5
4
3
2
1
0
0
IPBytes
0
1
1
0
1
1
TargetIP[7:0]
2
TargetIP[15:8]
3
TargetIP[23:16]
4
TargetIP[31:24]
5
TargetIP[39:32]
6
TargetIP[47:40]
7
TargetIP[55:48]
8
TargetIP[63:56]