background image

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]