background image

17-28 Vol. 3B

DEBUG, BRANCH PROFILE, TSC, AND RESOURCE MONITORING FEATURES

17.7.1 LBR 

Stack

Processors based on Intel microarchitecture code name Nehalem provide 16 pairs of MSR to record last branch 
record information. The layout of each MSR pair is shown in Table 17-8 and Table 17-9.

Processors based on Intel microarchitecture code name Nehalem have an LBR MSR Stack as shown in Table 17-10.

Table 17-10.  LBR Stack Size and TOS Pointer Range

17.7.2 

Filtering of Last Branch Records

MSR_LBR_SELECT is cleared to zero at RESET, and LBR filtering is disabled, i.e. all branches will be captured. 
MSR_LBR_SELECT provides bit fields to specify the conditions of subsets of branches that will not be captured in 
the LBR. The layout of MSR_LBR_SELECT is shown in Table 17-11.

Table 17-8.   MSR_LASTBRANCH_x_FROM_IP 

Bit Field

Bit Offset

Access

Description

Data

47:0

R/O

This is the “branch from“ address. See Section 17.4.8.1 for address format.

SIGN_EXt

62:48

R/0

Signed extension of bit 47 of this register.

MISPRED

63

R/O

When set, indicates either the target of the branch was mispredicted and/or the 

direction (taken/non-taken) was mispredicted; otherwise, the target branch was 

predicted.

Table 17-9.   MSR_LASTBRANCH_x_TO_IP 

Bit Field

Bit Offset

Access

Description

Data

47:0

R/O

This is the “branch to“ address. See Section 17.4.8.1 for address format

SIGN_EXt

63:48

R/0

Signed extension of bit 47 of this register.

DisplayFamily_DisplayModel

Size of LBR Stack

Range of TOS Pointer

06_1AH

16

0 to 15

Table 17-11.   MSR_LBR_SELECT for  Intel microarchitecture code name Nehalem

Bit Field

Bit Offset

Access

Description

CPL_EQ_0

0

R/W

When set, do not capture branches occurring in ring 0

CPL_NEQ_0

1

R/W

When set, do not capture branches occurring in ring >0

JCC

2

R/W

When set, do not capture conditional branches

NEAR_REL_CALL

3

R/W

When set, do not capture near relative calls

NEAR_IND_CALL

4

R/W

When set, do not capture near indirect calls

NEAR_RET

5

R/W

When set, do not capture near returns

NEAR_IND_JMP

6

R/W

When set, do not capture near indirect jumps

NEAR_REL_JMP

7

R/W

When set, do not capture near relative jumps 

FAR_BRANCH

8

R/W

When set, do not capture far branches

Reserved

63:9

Must be zero