// events from file arm/armv7-common/events {0x00, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PMNC_SW_INCR", "Software increment of PMNC registers"}, {0x01, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "IFETCH_MISS", "Instruction fetch misses from cache or normal cacheable memory"}, {0x02, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "ITLB_MISS", "Instruction fetch misses from TLB"}, {0x03, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "DCACHE_REFILL", "Data R/W operation that causes a refill from cache or normal cacheable memory"}, {0x04, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "DCACHE_ACCESS", "Data R/W from cache"}, {0x05, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "DTLB_REFILL", "Data R/W that causes a TLB refill"}, {0x06, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "DREAD", "Data read architecturally executed (note: architecturally executed = for instructions that are unconditional or that pass the condition code)"}, {0x07, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "DWRITE", "Data write architecturally executed"}, {0x08, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "INSTR_EXECUTED", "All executed instructions"}, {0x09, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "EXC_TAKEN", "Exception taken"}, {0x0A, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "EXC_EXECUTED", "Exception return architecturally executed"}, {0x0B, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "CID_WRITE", "Instruction that writes to the Context ID Register architecturally executed"}, {0x0C, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PC_WRITE", "SW change of PC, architecturally executed (not by exceptions)"}, {0x0D, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PC_IMM_BRANCH", "Immediate branch instruction executed (taken or not)"}, {0x0E, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PC_PROC_RETURN", "Procedure return architecturally executed (not by exceptions)"}, {0x0F, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "UNALIGNED_ACCESS", "Unaligned access architecturally executed"}, {0x10, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PC_BRANCH_MIS_PRED", "Branch mispredicted or not predicted. Counts pipeline flushes because of misprediction"}, {0x12, CTR(1) | CTR(2) | CTR(3) | CTR(4) | CTR(5) | CTR(6), 0, "PC_BRANCH_MIS_USED", "Branch or change in program flow that could have been predicted"}, {0xFF, CTR(0), 0, "CPU_CYCLES", "Number of CPU cycles"}, // events from file arm/armv7/events {0x40, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "WRITE_BUFFER_FULL", "Any write buffer full cycle"}, {0x41, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_STORE_MERGED", "Any store that is merged in L2 cache"}, {0x42, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_STORE_BUFF", "Any bufferable store from load/store to L2 cache"}, {0x43, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_ACCESS", "Any access to L2 cache"}, {0x44, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_CACH_MISS", "Any cacheable miss in L2 cache"}, {0x45, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "AXI_READ_CYCLES", "Number of cycles for an active AXI read"}, {0x46, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "AXI_WRITE_CYCLES", "Number of cycles for an active AXI write"}, {0x47, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "MEMORY_REPLAY", "Any replay event in the memory subsystem"}, {0x48, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "UNALIGNED_ACCESS_REPLAY", "Unaligned access that causes a replay"}, {0x49, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_DATA_MISS", "L1 data cache miss as a result of the hashing algorithm"}, {0x4A, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_INST_MISS", "L1 instruction cache miss as a result of the hashing algorithm"}, {0x4B, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_DATA_COLORING", "L1 data access in which a page coloring alias occurs"}, {0x4C, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_NEON_DATA", "NEON data access that hits L1 cache"}, {0x4D, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_NEON_CACH_DATA", "NEON cacheable data access that hits L1 cache"}, {0x4E, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_NEON", "L2 access as a result of NEON memory access"}, {0x4F, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L2_NEON_HIT", "Any NEON hit in L2 cache"}, {0x50, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "L1_INST", "Any L1 instruction cache access, excluding CP15 cache accesses"}, {0x51, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PC_RETURN_MIS_PRED", "Return stack misprediction at return stack pop (incorrect target address)"}, {0x52, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PC_BRANCH_FAILED", "Branch prediction misprediction"}, {0x53, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PC_BRANCH_TAKEN", "Any predicted branch that is taken"}, {0x54, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PC_BRANCH_EXECUTED", "Any taken branch that is executed"}, {0x55, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "OP_EXECUTED", "Number of operations executed (in instruction or mutli-cycle instruction)"}, {0x56, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "CYCLES_INST_STALL", "Cycles where no instruction available"}, {0x57, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "CYCLES_INST", "Number of instructions issued in a cycle"}, {0x58, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "CYCLES_NEON_DATA_STALL", "Number of cycles the processor waits on MRC data from NEON"}, {0x59, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "CYCLES_NEON_INST_STALL", "Number of cycles the processor waits on NEON instruction queue or NEON load queue"}, {0x5A, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "NEON_CYCLES", "Number of cycles NEON and integer processors are not idle"}, {0x70, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PMU0_EVENTS", "Number of events from external input source PMUEXTIN[0]"}, {0x71, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PMU1_EVENTS", "Number of events from external input source PMUEXTIN[1]"}, {0x72, CTR(1) | CTR(2) | CTR(3) | CTR(4), 0, "PMU_EVENTS", "Number of events from both external input sources PMUEXTIN[0] and PMUEXTIN[1]"},