Fix Sandy Bridge+ hwpmc branch counters

On Sandy Bridge and later, to count branch-related events you
have to or together a mask indicating the type of branch
instruction to count (e.g. direct jump, branch, etc) and a bits
indicating whether to count taken and not-taken branches.  The
current counter definitions where defining this bits individually,
so the counters never worked and always just counted 0.

Fix the counter definitions to instead contain the proper
combination of masks.  Also update the man pages to reflect the
new counters.

Differential Revision:	https://reviews.freebsd.org/D1587
MFC after:	1 month
Sponsored by:	Sandvine Inc.
This commit is contained in:
Ryan Stone 2015-03-10 01:23:47 +00:00
parent 89d0633b86
commit 9e60f3acd2
8 changed files with 364 additions and 450 deletions

View File

@ -529,73 +529,60 @@ instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H , Umask 04H .Pq Event 87H , Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H , Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions Count conditional near branch instructions that were executed (but not
executed, but not necessarily retired. necessarily retired) and not taken.
.It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H , Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions Count all unconditional near branch instructions excluding calls and
excluding calls and indirect branches. indirect branches.
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H , Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions Count executed indirect near branch instructions that are not calls nor
that are not calls nor returns. returns.
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H , Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return Count indirect near branches that have a return mnemonic.
mnemonic.
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H , Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, Count unconditional near call branch instructions, excluding non call
excluding non call branch, executed. branch, executed.
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H , Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register and Count indirect near calls, including both register and memory indirect,
memory indirect, executed. executed.
.It Li BR_INST_EXEC.NONTAKEN
.Pq Event 88H , Umask 40H
Qualify non-taken near branches executed.
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H , Umask 80H
Qualify taken near branches executed. Must combine
with 01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_INST_EXEC.ALL_BRANCHES .It Li BR_INST_EXEC.ALL_BRANCHES
.Pq Event 88H , Umask FFH .Pq Event 88H , Umask FFH
Counts all near executed branches (not necessarily Counts all near executed branches (not necessarily retired).
retired). .It Li BR_MISP_EXEC.NONTAKEN_COND
.It Li BR_MISP_EXEC.COND .Pq Event 89H , Umask 41H
.Pq Event 89H , Umask 01H Count conditional near branch instructions mispredicted as nontaken.
Qualify conditional near branch instructions .It Li BR_MISP_EXEC.TAKEN_COND
mispredicted. .Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H , Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch Count mispredicted indirect near branch instructions that are not calls
instructions that are not calls nor returns. nor returns.
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H , Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that Count mispredicted indirect near branches that have a return mnemonic.
have a return mnemonic.
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H , Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch Count mispredicted unconditional near call branch instructions, excluding
instructions, excluding non call branch, executed. non call branch, executed.
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H , Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including Count mispredicted indirect near calls, including both register and memory
both register and memory indirect, executed. indirect, executed.
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H , Umask 40H
Qualify mispredicted non-taken near branches
executed.
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H , Umask 80H
Qualify mispredicted taken near branches executed.
Must combine with 01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H , Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily Counts all mispredicted near executed branches (not necessarily retired).
retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH , Umask 01H .Pq Event 9CH , Umask 01H
Count number of non-delivered uops to RAT per Count number of non-delivered uops to RAT per

View File

@ -530,73 +530,60 @@ instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H , Umask 04H .Pq Event 87H , Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H , Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions Count conditional near branch instructions that were executed (but not
executed, but not necessarily retired. necessarily retired) and not taken.
.It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H , Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions Count all unconditional near branch instructions excluding calls and
excluding calls and indirect branches. indirect branches.
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H , Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions Count executed indirect near branch instructions that are not calls nor
that are not calls nor returns. returns.
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H , Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return Count indirect near branches that have a return mnemonic.
mnemonic.
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H , Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, Count unconditional near call branch instructions, excluding non call
excluding non call branch, executed. branch, executed.
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H , Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register and Count indirect near calls, including both register and memory indirect,
memory indirect, executed. executed.
.It Li BR_INST_EXEC.NONTAKEN
.Pq Event 88H , Umask 40H
Qualify non-taken near branches executed.
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H , Umask 80H
Qualify taken near branches executed. Must combine
with 01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_INST_EXEC.ALL_BRANCHES .It Li BR_INST_EXEC.ALL_BRANCHES
.Pq Event 88H , Umask FFH .Pq Event 88H , Umask FFH
Counts all near executed branches (not necessarily Counts all near executed branches (not necessarily retired).
retired). .It Li BR_MISP_EXEC.NONTAKEN_COND
.It Li BR_MISP_EXEC.COND .Pq Event 89H , Umask 41H
.Pq Event 89H , Umask 01H Count conditional near branch instructions mispredicted as nontaken.
Qualify conditional near branch instructions .It Li BR_MISP_EXEC.TAKEN_COND
mispredicted. .Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H , Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch Count mispredicted indirect near branch instructions that are not calls
instructions that are not calls nor returns. nor returns.
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H , Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that Count mispredicted indirect near branches that have a return mnemonic.
have a return mnemonic.
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H , Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch Count mispredicted unconditional near call branch instructions, excluding
instructions, excluding non call branch, executed. non call branch, executed.
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H , Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including Count mispredicted indirect near calls, including both register and memory
both register and memory indirect, executed. indirect, executed.
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H , Umask 40H
Qualify mispredicted non-taken near branches
executed.
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H , Umask 80H
Qualify mispredicted taken near branches executed.
Must combine with 01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H , Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily Counts all mispredicted near executed branches (not necessarily retired).
retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH , Umask 01H .Pq Event 9CH , Umask 01H
Count number of non-delivered uops to RAT per Count number of non-delivered uops to RAT per

View File

@ -449,80 +449,60 @@ Stalls caused by changing prefix length of the instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H , Umask 04H .Pq Event 87H , Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H , Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions executed, but not necessarily Count conditional near branch instructions that were executed (but not
retired. necessarily retired) and not taken.
Must combine with umask 40H, 80H. .It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H , Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions excluding calls and Count all unconditional near branch instructions excluding calls and
indirect branches. indirect branches.
Must combine with umask 80H.
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H , Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions that are not calls nor Count executed indirect near branch instructions that are not calls nor
returns. returns.
Must combine with umask 80H.
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H , Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return mnemonic. Count indirect near branches that have a return mnemonic.
Must combine with umask 80H.
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H , Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, excluding non call Count unconditional near call branch instructions, excluding non call
branch, executed. branch, executed.
Must combine with umask 80H.
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H , Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register and memory indirect, Count indirect near calls, including both register and memory indirect,
executed. executed.
Must combine with umask 80H.
.It Li BR_INST_EXEC.NONTAKEN
.Pq Event 88H , Umask 40H
Qualify non-taken near branches executed.
Applicable to umask 01H only.
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H , Umask 80H
Qualify taken near branches executed. Must combine with 01H,02H, 04H, 08H,
10H, 20H.
.It Li BR_INST_EXEC.ALL_BRANCHES .It Li BR_INST_EXEC.ALL_BRANCHES
.Pq Event 88H , Umask FFH .Pq Event 88H , Umask FFH
Counts all near executed branches (not necessarily retired). Counts all near executed branches (not necessarily retired).
.It Li BR_MISP_EXEC.COND .It Li BR_MISP_EXEC.NONTAKEN_COND
.Pq Event 89H , Umask 01H .Pq Event 89H , Umask 41H
Qualify conditional near branch instructions mispredicted. Count conditional near branch instructions mispredicted as nontaken.
Must combine with umask 40H, 80H. .It Li BR_MISP_EXEC.TAKEN_COND
.Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H , Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch instructions that are not calls Count mispredicted indirect near branch instructions that are not calls
nor returns. nor returns.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H , Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that have a return mnemonic. Count mispredicted indirect near branches that have a return mnemonic.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H , Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch instructions, excluding Count mispredicted unconditional near call branch instructions, excluding
non call branch, executed. non call branch, executed.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H , Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including both register and memory Count mispredicted indirect near calls, including both register and memory
indirect, executed. indirect, executed.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H , Umask 40H
Qualify mispredicted non-taken near branches executed.
Applicable to umask 01H only.
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H , Umask 80H
Qualify mispredicted taken near branches executed. Must combine with
01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H , Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily retired). Counts all mispredicted near executed branches (not necessarily retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH , Umask 01H .Pq Event 9CH , Umask 01H
Count number of non-delivered uops to RAT per thread. Count number of non-delivered uops to RAT per thread.

View File

@ -449,80 +449,60 @@ Stalls caused by changing prefix length of the instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H , Umask 04H .Pq Event 87H , Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H , Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions executed, but not necessarily Count conditional near branch instructions that were executed (but not
retired. necessarily retired) and not taken.
Must combine with umask 40H, 80H. .It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H , Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions excluding calls and Count all unconditional near branch instructions excluding calls and
indirect branches. indirect branches.
Must combine with umask 80H.
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H , Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions that are not calls nor Count executed indirect near branch instructions that are not calls nor
returns. returns.
Must combine with umask 80H.
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H , Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return mnemonic. Count indirect near branches that have a return mnemonic.
Must combine with umask 80H.
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H , Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, excluding non call Count unconditional near call branch instructions, excluding non call
branch, executed. branch, executed.
Must combine with umask 80H.
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H , Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register and memory indirect, Count indirect near calls, including both register and memory indirect,
executed. executed.
Must combine with umask 80H.
.It Li BR_INST_EXEC.NONTAKEN
.Pq Event 88H , Umask 40H
Qualify non-taken near branches executed.
Applicable to umask 01H only.
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H , Umask 80H
Qualify taken near branches executed. Must combine with 01H,02H, 04H, 08H,
10H, 20H.
.It Li BR_INST_EXEC.ALL_BRANCHES .It Li BR_INST_EXEC.ALL_BRANCHES
.Pq Event 88H , Umask FFH .Pq Event 88H , Umask FFH
Counts all near executed branches (not necessarily retired). Counts all near executed branches (not necessarily retired).
.It Li BR_MISP_EXEC.COND .It Li BR_MISP_EXEC.NONTAKEN_COND
.Pq Event 89H , Umask 01H .Pq Event 89H , Umask 41H
Qualify conditional near branch instructions mispredicted. Count conditional near branch instructions mispredicted as nontaken.
Must combine with umask 40H, 80H. .It Li BR_MISP_EXEC.TAKEN_COND
.Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H , Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch instructions that are not calls Count mispredicted indirect near branch instructions that are not calls
nor returns. nor returns.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H , Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that have a return mnemonic. Count mispredicted indirect near branches that have a return mnemonic.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H , Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch instructions, excluding Count mispredicted unconditional near call branch instructions, excluding
non call branch, executed. non call branch, executed.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H , Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including both register and memory Count mispredicted indirect near calls, including both register and memory
indirect, executed. indirect, executed.
Must combine with umask 80H.
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H , Umask 40H
Qualify mispredicted non-taken near branches executed.
Applicable to umask 01H only.
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H , Umask 80H
Qualify mispredicted taken near branches executed. Must combine with
01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H , Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily retired). Counts all mispredicted near executed branches (not necessarily retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH , Umask 01H .Pq Event 9CH , Umask 01H
Count number of non-delivered uops to RAT per thread. Count number of non-delivered uops to RAT per thread.

View File

@ -497,80 +497,60 @@ Stalls caused by changing prefix length of the instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H, Umask 04H .Pq Event 87H, Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H, Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions executed, but not necessarily Count conditional near branch instructions that were executed (but not
retired. necessarily retired) and not taken.
Must combine with umask 40H, 80H .It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H, Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions excluding calls and indirect Count all unconditional near branch instructions excluding calls and
branches. indirect branches.
Must combine with umask 80H
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H, Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions that are not calls nor Count executed indirect near branch instructions that are not calls nor
returns. returns.
Must combine with umask 80H
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H, Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return mnemonic. Count indirect near branches that have a return mnemonic.
Must combine with umask 80H
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H, Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, excluding non call branch, Count unconditional near call branch instructions, excluding non call
executed. branch, executed.
Must combine with umask 80H
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H, Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register and memory indirect, Count indirect near calls, including both register and memory indirect,
executed. executed.
Must combine with umask 80H .It Li BR_INST_EXEC.ALL_BRANCHES
.It Li BR_INST_EXEC.NONTAKEN .Pq Event 88H , Umask FFH
.Pq Event 88H, Umask 40H
Qualify non-taken near branches executed.
Applicable to umask 01H only
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H, Umask 80H
Qualify taken near branches executed.
Must combine with 01H,02H, 04H, 08H, 10H, 20H
.It Li BR_INST_EXE.ALL_BRANCHES
.Pq Event 88H, Umask FFH
Counts all near executed branches (not necessarily retired). Counts all near executed branches (not necessarily retired).
.It Li BR_MISP_EXEC.COND .It Li BR_MISP_EXEC.NONTAKEN_COND
.Pq Event 89H, Umask 01H .Pq Event 89H , Umask 41H
Qualify conditional near branch instructions mispredicted. Count conditional near branch instructions mispredicted as nontaken.
Must combine with umask 40H, 80H .It Li BR_MISP_EXEC.TAKEN_COND
.Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H, Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch instructions that are not calls nor Count mispredicted indirect near branch instructions that are not calls
returns. nor returns.
Must combine with umask 80H
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H, Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that have a return mnemonic. Count mispredicted indirect near branches that have a return mnemonic.
Must combine with umask 80H
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H, Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch instructions, excluding non Count mispredicted unconditional near call branch instructions, excluding
call branch, executed. non call branch, executed.
Must combine with umask 80H
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H, Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including both register and memory Count mispredicted indirect near calls, including both register and memory
indirect, executed. indirect, executed.
Must combine with umask 80H
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H, Umask 40H
Qualify mispredicted non-taken near branches executed.
Applicable to umask 01H only
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H, Umask 80H
Qualify mispredicted taken near branches executed.
Must combine with 01H,02H, 04H, 08H, 10H, 20H
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H, Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily retired). Counts all mispredicted near executed branches (not necessarily retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH, Umask 01H .Pq Event 9CH, Umask 01H
Count number of non-delivered uops to RAT per thread. Count number of non-delivered uops to RAT per thread.

View File

@ -543,73 +543,60 @@ instruction.
.It Li ILD_STALL.IQ_FULL .It Li ILD_STALL.IQ_FULL
.Pq Event 87H , Umask 04H .Pq Event 87H , Umask 04H
Stall cycles due to IQ is full. Stall cycles due to IQ is full.
.It Li BR_INST_EXEC.COND .It Li BR_INST_EXEC.NONTAKEN_COND
.Pq Event 88H , Umask 01H .Pq Event 88H , Umask 41H
Qualify conditional near branch instructions Count conditional near branch instructions that were executed (but not
executed, but not necessarily retired. necessarily retired) and not taken.
.It Li BR_INST_EXEC.TAKEN_COND
.Pq Event 88H , Umask 81H
Count conditional near branch instructions that were executed (but not
necessarily retired) and taken.
.It Li BR_INST_EXEC.DIRECT_JMP .It Li BR_INST_EXEC.DIRECT_JMP
.Pq Event 88H , Umask 02H .Pq Event 88H , Umask 82H
Qualify all unconditional near branch instructions Count all unconditional near branch instructions excluding calls and
excluding calls and indirect branches. indirect branches.
.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 88H , Umask 04H .Pq Event 88H , Umask 84H
Qualify executed indirect near branch instructions Count executed indirect near branch instructions that are not calls nor
that are not calls nor returns. returns.
.It Li BR_INST_EXEC.RETURN_NEAR .It Li BR_INST_EXEC.RETURN_NEAR
.Pq Event 88H , Umask 08H .Pq Event 88H , Umask 88H
Qualify indirect near branches that have a return Count indirect near branches that have a return mnemonic.
mnemonic.
.It Li BR_INST_EXEC.DIRECT_NEAR_CALL .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
.Pq Event 88H , Umask 10H .Pq Event 88H , Umask 90H
Qualify unconditional near call branch instructions, Count unconditional near call branch instructions, excluding non call
excluding non call branch, executed. branch, executed.
.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
.Pq Event 88H , Umask 20H .Pq Event 88H , Umask A0H
Qualify indirect near calls, including both register Count indirect near calls, including both register and memory indirect,
and memory indirect, executed. executed.
.It Li BR_INST_EXEC.NONTAKEN .It Li BR_INST_EXEC.ALL_BRANCHES
.Pq Event 88H , Umask 40H
Qualify non-taken near branches executed.
.It Li BR_INST_EXEC.TAKEN
.Pq Event 88H , Umask 80H
Qualify taken near branches executed. Must
combine with 01H,02H, 04H, 08H, 10H, 20H.
.It Li BR_INST_EXE.ALL_BRANCHES
.Pq Event 88H , Umask FFH .Pq Event 88H , Umask FFH
Counts all near executed branches (not necessarily Counts all near executed branches (not necessarily retired).
retired). .It Li BR_MISP_EXEC.NONTAKEN_COND
.It Li BR_MISP_EXEC.COND .Pq Event 89H , Umask 41H
.Pq Event 89H , Umask 01H Count conditional near branch instructions mispredicted as nontaken.
Qualify conditional near branch instructions .It Li BR_MISP_EXEC.TAKEN_COND
mispredicted. .Pq Event 89H , Umask 81H
Count conditional near branch instructions mispredicted as taken.
.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET .It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET
.Pq Event 89H , Umask 04H .Pq Event 89H , Umask 84H
Qualify mispredicted indirect near branch Count mispredicted indirect near branch instructions that are not calls
instructions that are not calls nor returns. nor returns.
.It Li BR_MISP_EXEC.RETURN_NEAR .It Li BR_MISP_EXEC.RETURN_NEAR
.Pq Event 89H , Umask 08H .Pq Event 89H , Umask 88H
Qualify mispredicted indirect near branches that Count mispredicted indirect near branches that have a return mnemonic.
have a return mnemonic.
.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
.Pq Event 89H , Umask 10H .Pq Event 89H , Umask 90H
Qualify mispredicted unconditional near call branch Count mispredicted unconditional near call branch instructions, excluding
instructions, excluding non call branch, executed. non call branch, executed.
.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
.Pq Event 89H , Umask 20H .Pq Event 89H , Umask A0H
Qualify mispredicted indirect near calls, including Count mispredicted indirect near calls, including both register and memory
both register and memory indirect, executed. indirect, executed.
.It Li BR_MISP_EXEC.NONTAKEN
.Pq Event 89H , Umask 40H
Qualify mispredicted non-taken near branches
executed,.
.It Li BR_MISP_EXEC.TAKEN
.Pq Event 89H , Umask 80H
Qualify mispredicted taken near branches executed.
Must combine with 01H,02H, 04H, 08H, 10H, 20H
.It Li BR_MISP_EXEC.ALL_BRANCHES .It Li BR_MISP_EXEC.ALL_BRANCHES
.Pq Event 89H , Umask FFH .Pq Event 89H , Umask FFH
Counts all near executed branches (not necessarily Counts all mispredicted near executed branches (not necessarily retired).
retired).
.It Li IDQ_UOPS_NOT_DELIVERED.CORE .It Li IDQ_UOPS_NOT_DELIVERED.CORE
.Pq Event 9CH , Umask 01H .Pq Event 9CH , Umask 01H
Count number of non-delivered uops to RAT per Count number of non-delivered uops to RAT per

View File

@ -1188,46 +1188,57 @@ static struct iap_event_descr iap_events[] = {
IAPDESCR(87H_0FH, 0x87, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(87H_0FH, 0x87, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_00H, 0x88, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(88H_00H, 0x88, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
IAPDESCR(88H_01H, 0x88, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(88H_01H, 0x88, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAPDESCR(88H_02H, 0x88, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_02H, 0x88, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(88H_04H, 0x88, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_04H, 0x88, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_07H, 0x88, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(88H_07H, 0x88, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_08H, 0x88, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(88H_08H, 0x88, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAPDESCR(88H_10H, 0x88, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_10H, 0x88, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(88H_20H, 0x88, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_20H, 0x88, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_30H, 0x88, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(88H_30H, 0x88, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_40H, 0x88, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(88H_40H, 0x88, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_7FH, 0x88, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(88H_7FH, 0x88, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(88H_80H, 0x88, 0x80, IAP_F_FM | IAP_F_SB | IAP_F_IB | IAPDESCR(88H_41H, 0x88, 0x41, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_81H, 0x88, 0x81, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_82H, 0x88, 0x82, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_84H, 0x88, 0x84, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_88H, 0x88, 0x88, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_90H, 0x88, 0x90, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_A0H, 0x88, 0xA0, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(88H_FFH, 0x88, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB | IAPDESCR(88H_FFH, 0x88, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_00H, 0x89, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(89H_00H, 0x89, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
IAPDESCR(89H_01H, 0x89, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(89H_01H, 0x89, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_02H, 0x89, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(89H_02H, 0x89, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(89H_04H, 0x89, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(89H_04H, 0x89, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_07H, 0x89, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(89H_07H, 0x89, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(89H_08H, 0x89, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(89H_08H, 0x89, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAPDESCR(89H_10H, 0x89, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(89H_10H, 0x89, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(89H_20H, 0x89, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_20H, 0x89, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_30H, 0x89, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(89H_30H, 0x89, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(89H_40H, 0x89, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAPDESCR(89H_40H, 0x89, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_7FH, 0x89, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(89H_7FH, 0x89, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
IAPDESCR(89H_80H, 0x89, 0x80, IAP_F_FM | IAP_F_SB | IAP_F_IB | IAPDESCR(89H_41H, 0x89, 0x41, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_81H, 0x89, 0x81, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_82H, 0x89, 0x82, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_84H, 0x89, 0x84, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_88H, 0x89, 0x88, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_90H, 0x89, 0x90, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_A0H, 0x89, 0xA0, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
IAPDESCR(89H_FFH, 0x89, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB | IAPDESCR(89H_FFH, 0x89, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB |
IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX), IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),

View File

@ -856,7 +856,14 @@ __PMC_EV(IAP, EVENT_88H_10H) \
__PMC_EV(IAP, EVENT_88H_20H) \ __PMC_EV(IAP, EVENT_88H_20H) \
__PMC_EV(IAP, EVENT_88H_30H) \ __PMC_EV(IAP, EVENT_88H_30H) \
__PMC_EV(IAP, EVENT_88H_40H) \ __PMC_EV(IAP, EVENT_88H_40H) \
__PMC_EV(IAP, EVENT_88H_41H) \
__PMC_EV(IAP, EVENT_88H_80H) \ __PMC_EV(IAP, EVENT_88H_80H) \
__PMC_EV(IAP, EVENT_88H_81H) \
__PMC_EV(IAP, EVENT_88H_82H) \
__PMC_EV(IAP, EVENT_88H_84H) \
__PMC_EV(IAP, EVENT_88H_88H) \
__PMC_EV(IAP, EVENT_88H_90H) \
__PMC_EV(IAP, EVENT_88H_A0H) \
__PMC_EV(IAP, EVENT_88H_7FH) \ __PMC_EV(IAP, EVENT_88H_7FH) \
__PMC_EV(IAP, EVENT_88H_FFH) \ __PMC_EV(IAP, EVENT_88H_FFH) \
__PMC_EV(IAP, EVENT_89H_00H) \ __PMC_EV(IAP, EVENT_89H_00H) \
@ -869,7 +876,14 @@ __PMC_EV(IAP, EVENT_89H_10H) \
__PMC_EV(IAP, EVENT_89H_20H) \ __PMC_EV(IAP, EVENT_89H_20H) \
__PMC_EV(IAP, EVENT_89H_30H) \ __PMC_EV(IAP, EVENT_89H_30H) \
__PMC_EV(IAP, EVENT_89H_40H) \ __PMC_EV(IAP, EVENT_89H_40H) \
__PMC_EV(IAP, EVENT_89H_41H) \
__PMC_EV(IAP, EVENT_89H_80H) \ __PMC_EV(IAP, EVENT_89H_80H) \
__PMC_EV(IAP, EVENT_89H_81H) \
__PMC_EV(IAP, EVENT_89H_82H) \
__PMC_EV(IAP, EVENT_89H_84H) \
__PMC_EV(IAP, EVENT_89H_88H) \
__PMC_EV(IAP, EVENT_89H_90H) \
__PMC_EV(IAP, EVENT_89H_A0H) \
__PMC_EV(IAP, EVENT_89H_7FH) \ __PMC_EV(IAP, EVENT_89H_7FH) \
__PMC_EV(IAP, EVENT_89H_FFH) \ __PMC_EV(IAP, EVENT_89H_FFH) \
__PMC_EV(IAP, EVENT_8AH_00H) \ __PMC_EV(IAP, EVENT_8AH_00H) \
@ -2677,24 +2691,22 @@ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT_2M", IAP_EVENT_85H_40H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_60H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_60H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \
__PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_EXECUTED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_EXECUTED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
@ -2906,24 +2918,22 @@ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT_2M", IAP_EVENT_85H_40H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_60H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_60H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \
__PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_EXECUTED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_EXECUTED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
@ -3132,24 +3142,22 @@ __PMC_EV_ALIAS("ITLB_MISSES.WALK_DURATION", IAP_EVENT_85H_04H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \
__PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
@ -3363,24 +3371,22 @@ __PMC_EV_ALIAS("ITLB_MISSES.WALK_DURATION", IAP_EVENT_85H_04H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \
__PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
@ -3599,24 +3605,22 @@ __PMC_EV_ALIAS("ITLB_MISSES.WALK_DURATION", IAP_EVENT_85H_04H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_INST_EXE.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
@ -3829,25 +3833,23 @@ __PMC_EV_ALIAS("ITLB_MISSES.WALK_DURATION", IAP_EVENT_85H_04H) \
__PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \ __PMC_EV_ALIAS("ITLB_MISSES.STLB_HIT", IAP_EVENT_85H_10H) \
__PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \ __PMC_EV_ALIAS("ILD_STALL.LCP", IAP_EVENT_87H_01H) \
__PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \ __PMC_EV_ALIAS("ILD_STALL.IQ_FULL", IAP_EVENT_87H_04H) \
__PMC_EV_ALIAS("BR_INST_EXEC.COND", IAP_EVENT_88H_01H) \ __PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN_COND", IAP_EVENT_88H_41H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_02H) \ __PMC_EV_ALIAS("BR_INST_EXEC.TAKEN_COND", IAP_EVENT_88H_81H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_JMP", IAP_EVENT_88H_82H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_88H_04H) \ IAP_EVENT_88H_84H) \
__PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_08H) \ __PMC_EV_ALIAS("BR_INST_EXEC.RETURN_NEAR", IAP_EVENT_88H_88H) \
__PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_10H) \ __PMC_EV_ALIAS("BR_INST_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_88H_90H) \
__PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_20H) \ __PMC_EV_ALIAS("BR_INST_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_88H_A0H) \
__PMC_EV_ALIAS("BR_INST_EXEC.NONTAKEN", IAP_EVENT_88H_40H) \ __PMC_EV_ALIAS("BR_INST_EXEC.ALL_BRANCHES", IAP_EVENT_88H_FFH) \
__PMC_EV_ALIAS("BR_INST_EXEC.TAKEN", IAP_EVENT_88H_80H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN_COND", IAP_EVENT_89H_41H) \
__PMC_EV_ALIAS("BR_INST_EXE.ALL_BRANCHES", IAP_EVENT_88H_FFH) \ __PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN_COND", IAP_EVENT_89H_81H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.COND", IAP_EVENT_89H_01H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET", \
IAP_EVENT_89H_04H) \ IAP_EVENT_89H_84H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_08H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.RETURN_NEAR", IAP_EVENT_89H_88H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_10H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.DIRECT_NEAR_CALL", IAP_EVENT_89H_90H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_20H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.INDIRECT_NEAR_CALL", IAP_EVENT_89H_A0H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.NONTAKEN", IAP_EVENT_89H_40H) \ __PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("BR_MISP_EXEC.TAKEN", IAP_EVENT_89H_80H) \
__PMC_EV_ALIAS("BR_MISP_EXEC.ALL_BRANCHES", IAP_EVENT_89H_FFH) \
__PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \ __PMC_EV_ALIAS("IDQ_UOPS_NOT_DELIVERED.CORE", IAP_EVENT_9CH_01H) \
__PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \ __PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_0", IAP_EVENT_A1H_01H) \
__PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_1", IAP_EVENT_A1H_02H) \ __PMC_EV_ALIAS("UOPS_DISPATCHED_PORT.PORT_1", IAP_EVENT_A1H_02H) \