1*bae83248SAli Mashtizadeh[ 2*bae83248SAli Mashtizadeh { 3*bae83248SAli Mashtizadeh "EventName": "ex_ret_instr", 4*bae83248SAli Mashtizadeh "EventCode": "0xc0", 5*bae83248SAli Mashtizadeh "BriefDescription": "Retired instructions." 6*bae83248SAli Mashtizadeh }, 7*bae83248SAli Mashtizadeh { 8*bae83248SAli Mashtizadeh "EventName": "ex_ret_ops", 9*bae83248SAli Mashtizadeh "EventCode": "0xc1", 10*bae83248SAli Mashtizadeh "BriefDescription": "Retired macro-ops." 11*bae83248SAli Mashtizadeh }, 12*bae83248SAli Mashtizadeh { 13*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn", 14*bae83248SAli Mashtizadeh "EventCode": "0xc2", 15*bae83248SAli Mashtizadeh "BriefDescription": "Retired branch instructions (all types of architectural control flow changes, including exceptions and interrupts)." 16*bae83248SAli Mashtizadeh }, 17*bae83248SAli Mashtizadeh { 18*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn_misp", 19*bae83248SAli Mashtizadeh "EventCode": "0xc3", 20*bae83248SAli Mashtizadeh "BriefDescription": "Retired branch instructions mispredicted." 21*bae83248SAli Mashtizadeh }, 22*bae83248SAli Mashtizadeh { 23*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn_tkn", 24*bae83248SAli Mashtizadeh "EventCode": "0xc4", 25*bae83248SAli Mashtizadeh "BriefDescription": "Retired taken branch instructions (all types of architectural control flow changes, including exceptions and interrupts)." 26*bae83248SAli Mashtizadeh }, 27*bae83248SAli Mashtizadeh { 28*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn_tkn_misp", 29*bae83248SAli Mashtizadeh "EventCode": "0xc5", 30*bae83248SAli Mashtizadeh "BriefDescription": "Retired taken branch instructions mispredicted." 31*bae83248SAli Mashtizadeh }, 32*bae83248SAli Mashtizadeh { 33*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn_far", 34*bae83248SAli Mashtizadeh "EventCode": "0xc6", 35*bae83248SAli Mashtizadeh "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." 36*bae83248SAli Mashtizadeh }, 37*bae83248SAli Mashtizadeh { 38*bae83248SAli Mashtizadeh "EventName": "ex_ret_near_ret", 39*bae83248SAli Mashtizadeh "EventCode": "0xc8", 40*bae83248SAli Mashtizadeh "BriefDescription": "Retired near returns (RET or RET Iw)." 41*bae83248SAli Mashtizadeh }, 42*bae83248SAli Mashtizadeh { 43*bae83248SAli Mashtizadeh "EventName": "ex_ret_near_ret_mispred", 44*bae83248SAli Mashtizadeh "EventCode": "0xc9", 45*bae83248SAli Mashtizadeh "BriefDescription": "Retired near returns mispredicted. Each misprediction incurs the same penalty as a mispredicted conditional branch instruction." 46*bae83248SAli Mashtizadeh }, 47*bae83248SAli Mashtizadeh { 48*bae83248SAli Mashtizadeh "EventName": "ex_ret_brn_ind_misp", 49*bae83248SAli Mashtizadeh "EventCode": "0xca", 50*bae83248SAli Mashtizadeh "BriefDescription": "Retired indirect branch instructions mispredicted (only EX mispredicts). Each misprediction incurs the same penalty as a mispredicted conditional branch instruction." 51*bae83248SAli Mashtizadeh }, 52*bae83248SAli Mashtizadeh { 53*bae83248SAli Mashtizadeh "EventName": "ex_ret_mmx_fp_instr.x87", 54*bae83248SAli Mashtizadeh "EventCode": "0xcb", 55*bae83248SAli Mashtizadeh "BriefDescription": "Retired x87 instructions.", 56*bae83248SAli Mashtizadeh "UMask": "0x01" 57*bae83248SAli Mashtizadeh }, 58*bae83248SAli Mashtizadeh { 59*bae83248SAli Mashtizadeh "EventName": "ex_ret_mmx_fp_instr.mmx", 60*bae83248SAli Mashtizadeh "EventCode": "0xcb", 61*bae83248SAli Mashtizadeh "BriefDescription": "Retired MMX instructions.", 62*bae83248SAli Mashtizadeh "UMask": "0x02" 63*bae83248SAli Mashtizadeh }, 64*bae83248SAli Mashtizadeh { 65*bae83248SAli Mashtizadeh "EventName": "ex_ret_mmx_fp_instr.sse", 66*bae83248SAli Mashtizadeh "EventCode": "0xcb", 67*bae83248SAli Mashtizadeh "BriefDescription": "Retired SSE instructions (includes SSE, SSE2, SSE3, SSSE3, SSE4A, SSE41, SSE42 and AVX).", 68*bae83248SAli Mashtizadeh "UMask": "0x04" 69*bae83248SAli Mashtizadeh }, 70*bae83248SAli Mashtizadeh { 71*bae83248SAli Mashtizadeh "EventName": "ex_ret_ind_brch_instr", 72*bae83248SAli Mashtizadeh "EventCode": "0xcc", 73*bae83248SAli Mashtizadeh "BriefDescription": "Retired indirect branch instructions." 74*bae83248SAli Mashtizadeh }, 75*bae83248SAli Mashtizadeh { 76*bae83248SAli Mashtizadeh "EventName": "ex_ret_cond", 77*bae83248SAli Mashtizadeh "EventCode": "0xd1", 78*bae83248SAli Mashtizadeh "BriefDescription": "Retired conditional branch instructions." 79*bae83248SAli Mashtizadeh }, 80*bae83248SAli Mashtizadeh { 81*bae83248SAli Mashtizadeh "EventName": "ex_div_busy", 82*bae83248SAli Mashtizadeh "EventCode": "0xd3", 83*bae83248SAli Mashtizadeh "BriefDescription": "Number of cycles the divider is busy." 84*bae83248SAli Mashtizadeh }, 85*bae83248SAli Mashtizadeh { 86*bae83248SAli Mashtizadeh "EventName": "ex_div_count", 87*bae83248SAli Mashtizadeh "EventCode": "0xd4", 88*bae83248SAli Mashtizadeh "BriefDescription": "Divide ops executed." 89*bae83248SAli Mashtizadeh }, 90*bae83248SAli Mashtizadeh { 91*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.empty", 92*bae83248SAli Mashtizadeh "EventCode": "0xd6", 93*bae83248SAli Mashtizadeh "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).", 94*bae83248SAli Mashtizadeh "UMask": "0x01" 95*bae83248SAli Mashtizadeh }, 96*bae83248SAli Mashtizadeh { 97*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.not_complete", 98*bae83248SAli Mashtizadeh "EventCode": "0xd6", 99*bae83248SAli Mashtizadeh "BriefDescription": "Cycles with no retire while the oldest op is waiting to be executed.", 100*bae83248SAli Mashtizadeh "UMask": "0x02" 101*bae83248SAli Mashtizadeh }, 102*bae83248SAli Mashtizadeh { 103*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.other", 104*bae83248SAli Mashtizadeh "EventCode": "0xd6", 105*bae83248SAli Mashtizadeh "BriefDescription": "Cycles with no retire caused by other reasons (retire breaks, traps, faults, etc.).", 106*bae83248SAli Mashtizadeh "UMask": "0x08" 107*bae83248SAli Mashtizadeh }, 108*bae83248SAli Mashtizadeh { 109*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.thread_not_selected", 110*bae83248SAli Mashtizadeh "EventCode": "0xd6", 111*bae83248SAli Mashtizadeh "BriefDescription": "Cycles with no retire because thread arbitration did not select the thread.", 112*bae83248SAli Mashtizadeh "UMask": "0x10" 113*bae83248SAli Mashtizadeh }, 114*bae83248SAli Mashtizadeh { 115*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.load_not_complete", 116*bae83248SAli Mashtizadeh "EventCode": "0xd6", 117*bae83248SAli Mashtizadeh "BriefDescription": "Cycles with no retire while the oldest op is waiting for load data.", 118*bae83248SAli Mashtizadeh "UMask": "0xa2" 119*bae83248SAli Mashtizadeh }, 120*bae83248SAli Mashtizadeh { 121*bae83248SAli Mashtizadeh "EventName": "ex_no_retire.all", 122*bae83248SAli Mashtizadeh "EventCode": "0xd6", 123*bae83248SAli Mashtizadeh "BriefDescription": "Cycles with no retire for any reason.", 124*bae83248SAli Mashtizadeh "UMask": "0x1b" 125*bae83248SAli Mashtizadeh }, 126*bae83248SAli Mashtizadeh { 127*bae83248SAli Mashtizadeh "EventName": "ex_ret_ucode_instr", 128*bae83248SAli Mashtizadeh "EventCode": "0x1c1", 129*bae83248SAli Mashtizadeh "BriefDescription": "Retired microcoded instructions." 130*bae83248SAli Mashtizadeh }, 131*bae83248SAli Mashtizadeh { 132*bae83248SAli Mashtizadeh "EventName": "ex_ret_ucode_ops", 133*bae83248SAli Mashtizadeh "EventCode": "0x1c2", 134*bae83248SAli Mashtizadeh "BriefDescription": "Retired microcode ops." 135*bae83248SAli Mashtizadeh }, 136*bae83248SAli Mashtizadeh { 137*bae83248SAli Mashtizadeh "EventName": "ex_ret_msprd_brnch_instr_dir_msmtch", 138*bae83248SAli Mashtizadeh "EventCode": "0x1c7", 139*bae83248SAli Mashtizadeh "BriefDescription": "Retired branch instructions mispredicted due to direction mismatch." 140*bae83248SAli Mashtizadeh }, 141*bae83248SAli Mashtizadeh { 142*bae83248SAli Mashtizadeh "EventName": "ex_ret_uncond_brnch_instr_mispred", 143*bae83248SAli Mashtizadeh "EventCode": "0x1c8", 144*bae83248SAli Mashtizadeh "BriefDescription": "Retired unconditional indirect branch instructions mispredicted." 145*bae83248SAli Mashtizadeh }, 146*bae83248SAli Mashtizadeh { 147*bae83248SAli Mashtizadeh "EventName": "ex_ret_uncond_brnch_instr", 148*bae83248SAli Mashtizadeh "EventCode": "0x1c9", 149*bae83248SAli Mashtizadeh "BriefDescription": "Retired unconditional branch instructions." 150*bae83248SAli Mashtizadeh }, 151*bae83248SAli Mashtizadeh { 152*bae83248SAli Mashtizadeh "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops", 153*bae83248SAli Mashtizadeh "EventCode": "0x1cf", 154*bae83248SAli Mashtizadeh "BriefDescription": "Ops tagged by IBS.", 155*bae83248SAli Mashtizadeh "UMask": "0x01" 156*bae83248SAli Mashtizadeh }, 157*bae83248SAli Mashtizadeh { 158*bae83248SAli Mashtizadeh "EventName": "ex_tagged_ibs_ops.ibs_tagged_ops_ret", 159*bae83248SAli Mashtizadeh "EventCode": "0x1cf", 160*bae83248SAli Mashtizadeh "BriefDescription": "Ops tagged by IBS that retired.", 161*bae83248SAli Mashtizadeh "UMask": "0x02" 162*bae83248SAli Mashtizadeh }, 163*bae83248SAli Mashtizadeh { 164*bae83248SAli Mashtizadeh "EventName": "ex_tagged_ibs_ops.ibs_count_rollover", 165*bae83248SAli Mashtizadeh "EventCode": "0x1cf", 166*bae83248SAli Mashtizadeh "BriefDescription": "Ops not tagged by IBS due to a previous tagged op that has not yet signaled interrupt.", 167*bae83248SAli Mashtizadeh "UMask": "0x04" 168*bae83248SAli Mashtizadeh }, 169*bae83248SAli Mashtizadeh { 170*bae83248SAli Mashtizadeh "EventName": "ex_ret_fused_instr", 171*bae83248SAli Mashtizadeh "EventCode": "0x1d0", 172*bae83248SAli Mashtizadeh "BriefDescription": "Retired fused instructions." 173*bae83248SAli Mashtizadeh } 174*bae83248SAli Mashtizadeh] 175