| [ |
| { |
| "EventName": "ex_ret_instr", |
| "EventCode": "0xc0", |
| "BriefDescription": "Retired instructions." |
| }, |
| { |
| "EventName": "ex_ret_ops", |
| "EventCode": "0xc1", |
| "BriefDescription": "Retired macro-ops." |
| }, |
| { |
| "EventName": "ex_ret_brn", |
| "EventCode": "0xc2", |
| "BriefDescription": "Retired branch instructions (all types of architectural control flow changes, including exceptions and interrupts)." |
| }, |
| { |
| "EventName": "ex_ret_brn_misp", |
| "EventCode": "0xc3", |
| "BriefDescription": "Retired branch instructions mispredicted." |
| }, |
| { |
| "EventName": "ex_ret_brn_tkn", |
| "EventCode": "0xc4", |
| "BriefDescription": "Retired taken branch instructions (all types of architectural control flow changes, including exceptions and interrupts)." |
| }, |
| { |
| "EventName": "ex_ret_brn_tkn_misp", |
| "EventCode": "0xc5", |
| "BriefDescription": "Retired taken branch instructions mispredicted." |
| }, |
| { |
| "EventName": "ex_ret_brn_far", |
| "EventCode": "0xc6", |
| "BriefDescription": "Retired far control transfers (far call/jump/return, IRET, SYSCALL and SYSRET, plus exceptions and interrupts). Far control transfers are not subject to branch prediction." |
| }, |
| { |
| "EventName": "ex_ret_near_ret", |
| "EventCode": "0xc8", |
| "BriefDescription": "Retired near returns (RET or RET Iw)." |
| }, |
| { |
| "EventName": "ex_ret_near_ret_mispred", |
| "EventCode": "0xc9", |
| "BriefDescription": "Retired near returns mispredicted. Each misprediction incurs the same penalty as a mispredicted conditional branch instruction." |
| }, |
| { |
| "EventName": "ex_ret_brn_ind_misp", |
| "EventCode": "0xca", |
| "BriefDescription": "Retired indirect branch instructions mispredicted (only EX mispredicts). Each misprediction incurs the same penalty as a mispredicted conditional branch instruction." |
| }, |
| { |
| "EventName": "ex_ret_mmx_fp_instr.x87", |
| "EventCode": "0xcb", |
| "BriefDescription": "Retired x87 instructions.", |
| "UMask": "0x01" |
| }, |
| { |
| "EventName": "ex_ret_mmx_fp_instr.mmx", |
| "EventCode": "0xcb", |
| "BriefDescription": "Retired MMX instructions.", |
| "UMask": "0x02" |
| }, |
| { |
| "EventName": "ex_ret_mmx_fp_instr.sse", |
| "EventCode": "0xcb", |
| "BriefDescription": "Retired SSE instructions (includes SSE, SSE2, SSE3, SSSE3, SSE4A, SSE41, SSE42 and AVX).", |
| "UMask": "0x04" |
| }, |
| { |
| "EventName": "ex_ret_ind_brch_instr", |
| "EventCode": "0xcc", |
| "BriefDescription": "Retired indirect branch instructions." |
| }, |
| { |
| "EventName": "ex_ret_cond", |
| "EventCode": "0xd1", |
| "BriefDescription": "Retired conditional branch instructions." |
| }, |
| { |
| "EventName": "ex_div_busy", |
| "EventCode": "0xd3", |
| "BriefDescription": "Number of cycles the divider is busy." |
| }, |
| { |
| "EventName": "ex_div_count", |
| "EventCode": "0xd4", |
| "BriefDescription": "Divide ops executed." |
| }, |
| { |
| "EventName": "ex_no_retire.empty", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire due to the lack of valid ops in the retire queue (may be caused by front-end bottlenecks or pipeline redirects).", |
| "UMask": "0x01" |
| }, |
| { |
| "EventName": "ex_no_retire.not_complete", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire while the oldest op is waiting to be executed.", |
| "UMask": "0x02" |
| }, |
| { |
| "EventName": "ex_no_retire.other", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire caused by other reasons (retire breaks, traps, faults, etc.).", |
| "UMask": "0x08" |
| }, |
| { |
| "EventName": "ex_no_retire.thread_not_selected", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire because thread arbitration did not select the thread.", |
| "UMask": "0x10" |
| }, |
| { |
| "EventName": "ex_no_retire.load_not_complete", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire while the oldest op is waiting for load data.", |
| "UMask": "0xa2" |
| }, |
| { |
| "EventName": "ex_no_retire.all", |
| "EventCode": "0xd6", |
| "BriefDescription": "Cycles with no retire for any reason.", |
| "UMask": "0x1b" |
| }, |
| { |
| "EventName": "ex_ret_ucode_instr", |
| "EventCode": "0x1c1", |
| "BriefDescription": "Retired microcoded instructions." |
| }, |
| { |
| "EventName": "ex_ret_ucode_ops", |
| "EventCode": "0x1c2", |
| "BriefDescription": "Retired microcode ops." |
| }, |
| { |
| "EventName": "ex_ret_msprd_brnch_instr_dir_msmtch", |
| "EventCode": "0x1c7", |
| "BriefDescription": "Retired branch instructions mispredicted due to direction mismatch." |
| }, |
| { |
| "EventName": "ex_ret_uncond_brnch_instr_mispred", |
| "EventCode": "0x1c8", |
| "BriefDescription": "Retired unconditional indirect branch instructions mispredicted." |
| }, |
| { |
| "EventName": "ex_ret_uncond_brnch_instr", |
| "EventCode": "0x1c9", |
| "BriefDescription": "Retired unconditional branch instructions." |
| }, |
| { |
| "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops", |
| "EventCode": "0x1cf", |
| "BriefDescription": "Ops tagged by IBS.", |
| "UMask": "0x01" |
| }, |
| { |
| "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops_ret", |
| "EventCode": "0x1cf", |
| "BriefDescription": "Ops tagged by IBS that retired.", |
| "UMask": "0x02" |
| }, |
| { |
| "EventName": "ex_tagged_ibs_ops.ibs_count_rollover", |
| "EventCode": "0x1cf", |
| "BriefDescription": "Ops not tagged by IBS due to a previous tagged op that has not yet signaled interrupt.", |
| "UMask": "0x04" |
| }, |
| { |
| "EventName": "ex_ret_fused_instr", |
| "EventCode": "0x1d0", |
| "BriefDescription": "Retired fused instructions." |
| } |
| ] |