Blame src/libpfm4/lib/events/mips_74k_events.h

Packit 577717
/*
Packit 577717
 * Copyright (c) 2011 Samara Technology Group, Inc
Packit 577717
 * Contributed by Philip Mucci <phil.mucci@@samaratechnologygroup.com>
Packit 577717
 *
Packit 577717
 * Permission is hereby granted, free of charge, to any person obtaining a copy
Packit 577717
 * of this software and associated documentation files (the "Software"), to deal
Packit 577717
 * in the Software without restriction, including without limitation the rights
Packit 577717
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
Packit 577717
 * of the Software, and to permit persons to whom the Software is furnished to do so,
Packit 577717
 * subject to the following conditions:
Packit 577717
 *
Packit 577717
 * The above copyright notice and this permission notice shall be included in all
Packit 577717
 * copies or substantial portions of the Software.
Packit 577717
 *
Packit 577717
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Packit 577717
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
Packit 577717
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Packit 577717
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Packit 577717
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
Packit 577717
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit 577717
 *
Packit 577717
 * Based on:
Packit 577717
 * MIPS32 74KTM Processor Core Family Software Users' Manual
Packit 577717
 * Document Number: MD00519 Revision 01.05 March 30, 2011
Packit 577717
 */
Packit 577717
Packit 577717
static const mips_entry_t mips_74k_pe []={
Packit 577717
  {
Packit 577717
    .name = "CYCLES", /* BOTH */
Packit 577717
    .code = 0x0,
Packit 577717
    .desc = "Cycles",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "INSTRUCTIONS", /* BOTH */
Packit 577717
    .code = 0x1,
Packit 577717
    .desc = "Instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "PREDICTED_JR_31",
Packit 577717
    .code = 0x2,
Packit 577717
    .desc = "jr $31 (return) instructions whose target is predicted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JR_31_MISPREDICTIONS",
Packit 577717
    .code = 0x82,
Packit 577717
    .desc = "jr $31 (return) predicted but guessed wrong",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "REDIRECT_STALLS",
Packit 577717
    .code = 0x3,
Packit 577717
    .desc = "Cycles where no instruction is fetched because it has no next address candidate. This includes stalls due to register indirect jumps such as jr, stalls following a wait or eret and stalls dues to exceptions from instruction fetch",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JR_31_NO_PREDICTIONS",
Packit 577717
    .code = 0x83,
Packit 577717
    .desc = "jr $31 (return) instructions fetched and not predicted using RPS",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ITLB_ACCESSES",
Packit 577717
    .code = 0x4,
Packit 577717
    .desc = "ITLB accesses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ITLB_MISSES",
Packit 577717
    .code = 0x84,
Packit 577717
    .desc = "ITLB misses, which result in a JTLB access",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JTLB_INSN_MISSES",
Packit 577717
    .code = 0x85,
Packit 577717
    .desc = "JTLB instruction access misses (will lead to an exception)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ICACHE_ACCESSES",
Packit 577717
    .code = 0x6,
Packit 577717
    .desc = "Instruction cache accesses. 74K cores have a 128-bit connection to the I-cache and fetch 4 instructions every access. This counts every such access, including accesses for instructions which are eventually discarded. For example, following a branch which is incorrectly predicted, the 74K core will continue to fetch instructions, which will eventually get thrown away",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ICACHE_MISSES",
Packit 577717
    .code = 0x86,
Packit 577717
    .desc = "I-cache misses. Includes misses resulting from fetch-ahead and speculation",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ICACHE_MISS_STALLS",
Packit 577717
    .code = 0x7,
Packit 577717
    .desc = "Cycles where no instruction is fetched because we missed in the I-cache",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "UNCACHED_IFETCH_STALLS",
Packit 577717
    .code = 0x8,
Packit 577717
    .desc = "Cycles where no instruction is fetched because we're waiting for an I-fetch from uncached memory",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "PDTRACE_BACK_STALLS",
Packit 577717
    .code = 0x88,
Packit 577717
    .desc = "PDTrace back stalls",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "IFU_REPLAYS",
Packit 577717
    .code = 0x9,
Packit 577717
    .desc = "Number of times the instruction fetch pipeline is flushed and replayed because the IFU buffers are full and unable to accept any instructions",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "KILLED_FETCH_SLOTS",
Packit 577717
    .code = 0x89,
Packit 577717
    .desc = "Valid fetch slots killed due to taken branches/jumps or stalling instructions",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DDQ0_FULL_DR_STALLS",
Packit 577717
    .code = 0xd,
Packit 577717
    .desc = "Cycles where no instructions are brought into the IDU because the ALU instruction candidate pool is full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DDQ1_FULL_DR_STALLS",
Packit 577717
    .code = 0x8d,
Packit 577717
    .desc = "Cycles where no instructions are brought into the IDU because the AGEN instruction candidate pool is full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALCB_FULL_DR_STALLS",
Packit 577717
    .code = 0xe,
Packit 577717
    .desc = "Cycles where no instructions can be added to the issue pool, because we have run out of ALU completion buffers (CBs)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "AGCB_FULL_DR_STALLS",
Packit 577717
    .code = 0x8e,
Packit 577717
    .desc = "Cycles where no instructions can be added to the issue pool, because we have run out of AGEN completion buffers (CBs)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "CLDQ_FULL_DR_STALLS",
Packit 577717
    .code = 0xf,
Packit 577717
    .desc = "Cycles where no instructions can be added to the issue pool, because we've used all the FIFO entries in the CLDQ which keep track of data coming back from the FPU",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "IODQ_FULL_DR_STALLS",
Packit 577717
    .code = 0x8f,
Packit 577717
    .desc = "Cycles where no instructions can be added to the issue pool, because we've filled the in order FIFO used for coprocessor 1 instructions (IOIQ)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALU_EMPTY_CYCLES",
Packit 577717
    .code = 0x10,
Packit 577717
    .desc = "Cycles with no ALU-pipe issue; no instructions available",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "AGEN_EMPTY_CYCLES",
Packit 577717
    .code = 0x90,
Packit 577717
    .desc = "Cycles with no AGEN-pipe issue; no instructions available",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALU_OPERANDS_NOT_READY_CYCLES",
Packit 577717
    .code = 0x11,
Packit 577717
    .desc = "Cycles with no ALU-pipe issue; we have instructions, but operands not ready",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "AGEN_OPERANDS_NOT_READY_CYCLES",
Packit 577717
    .code = 0x91,
Packit 577717
    .desc = "Cycles with no AGEN-pipe issue; we have instructions, but operands not ready",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALU_NO_ISSUE_CYCLES",
Packit 577717
    .code = 0x12,
Packit 577717
    .desc = "Cycles with no ALU-pipe issue; we have instructions, but some resource is unavailable. This includes, operands are not ready (same as event 17), div in progress inhibits MDU instructions, CorExtend resource limitation",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "AGEN_NO_ISSUE_CYCLES",
Packit 577717
    .code = 0x92,
Packit 577717
    .desc = "Cycles with no AGEN-pipe issue; we have instructions, but some resource is unavailable. This includes, operands are not ready (same as event 17), Non-issued stores blocking ready to issue loads, issued cacheops blocking ready to issue loads",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALU_BUBBLE_CYCLES",
Packit 577717
    .code = 0x13,
Packit 577717
    .desc = "ALU-pipe bubble issued. The resulting empty pipe stage guarantees that some resource will be unused for a cycle, sometime soon. Used, for example, to guarantee an opportunity to write mfc1 data into a CB",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "AGEN_BUBBLE_CYCLES",
Packit 577717
    .code = 0x93,
Packit 577717
    .desc = "AGEN-pipe bubble issued. The resulting empty pipe stage guarantees that some resource will be unused for a cycle, sometime soon. Used, for example, to allow access to the data cache for refill or eviction",
Packit 577717
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SINGLE_ISSUE_CYCLES",
Packit 577717
    .code = 0x14,
Packit 577717
    .desc = "Cycles when one instruction is issued",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DUAL_ISSUE_CYCLES",
Packit 577717
    .code = 0x94,
Packit 577717
    .desc = "Cycles when two instructions are issued (one ALU, one AGEN)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OOO_ALU_ISSUE_CYCLES",
Packit 577717
    .code = 0x15,
Packit 577717
    .desc = "Cycles when instructions are issued out of order into the ALU pipe. i.e. instruction issued is not the oldest in the pool",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OOO_AGEN_ISSUE_CYCLES",
Packit 577717
    .code = 0x95,
Packit 577717
    .desc = "Cycles when instructions are issued out of order into the AGEN pipe. i.e. instruction issued is not the oldest in the pool",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JALR_JALR_HB_INSNS",
Packit 577717
    .code = 0x16,
Packit 577717
    .desc = "Graduated JAR/JALR.HB",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_LINE_REFILL_REQUESTS",
Packit 577717
    .code = 0x96,
Packit 577717
    .desc = "D-Cache line refill (not LD/ST misses)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_LOAD_ACCESSES",
Packit 577717
    .code = 0x17,
Packit 577717
    .desc = "Cacheable loads - Counts all accesses to the D-cache caused by load instructions. This count includes instructions that do not graduate",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_ACCESSES",
Packit 577717
    .code = 0x97,
Packit 577717
    .desc = "All D-cache accesses (loads, stores, prefetch, cacheop etc). This count includes instructions that do not graduate",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_WRITEBACKS",
Packit 577717
    .code = 0x18,
Packit 577717
    .desc = "D-Cache writebacks",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_MISSES",
Packit 577717
    .code = 0x98,
Packit 577717
    .desc = "D-cache misses. This count is per instruction at graduation and includes load, store, prefetch, synci and address based cacheops",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JTLB_DATA_ACCESSES",
Packit 577717
    .code = 0x19,
Packit 577717
    .desc = "JTLB d-side (data side as opposed to instruction side) accesses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JTLB_DATA_MISSES",
Packit 577717
    .code = 0x99,
Packit 577717
    .desc = "JTLB translation fails on d-side (data side as opposed to instruction side) accesses. This count includes instructions that do not graduate",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LOAD_STORE_REPLAYS",
Packit 577717
    .code = 0x1a,
Packit 577717
    .desc = "Load/store instruction redirects, which happen when the load/store follows too closely on a possibly matching cacheop",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DCACHE_VTAG_MISMATCH",
Packit 577717
    .code = 0x9a,
Packit 577717
    .desc = "The 74K core's D-cache has an auxiliary virtual tag, used to pick the right line early. When (occasionally) the physical tag match and virtual tag match do not line up, it is treated as a cache miss - in processing the miss the virtual tag is corrected for future accesses. This event counts those bogus misses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "L2_CACHE_WRITEBACKS",
Packit 577717
    .code = 0x1c,
Packit 577717
    .desc = "L2 cache writebacks",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "L2_CACHE_ACCESSES",
Packit 577717
    .code = 0x9c,
Packit 577717
    .desc = "L2 cache accesses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "L2_CACHE_MISSES",
Packit 577717
    .code = 0x1d,
Packit 577717
    .desc = "L2 cache misses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "L2_CACHE_MISS_CYCLES",
Packit 577717
    .code = 0x9d,
Packit 577717
    .desc = "L2 cache miss cycles",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FSB_FULL_STALLS",
Packit 577717
    .code = 0x1e,
Packit 577717
    .desc = "Cycles Fill Store Buffer(FSB) are full and cause a pipe stall",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FSB_OVER_50_FULL",
Packit 577717
    .code = 0x9e,
Packit 577717
    .desc = "Cycles Fill Store Buffer(FSB) > 1/2 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LDQ_FULL_STALLS",
Packit 577717
    .code = 0x1f,
Packit 577717
    .desc = "Cycles Load Data Queue (LDQ) are full and cause a pipe stall",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LDQ_OVER_50_FULL",
Packit 577717
    .code = 0x9f,
Packit 577717
    .desc = "Cycles Load Data Queue(LDQ) > 1/2 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "WBB_FULL_STALLS",
Packit 577717
    .code = 0x20,
Packit 577717
    .desc = "Cycles Writeback Buffer(WBB) are full and cause a pipe stall",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "WBB_OVER_50_FULL",
Packit 577717
    .code = 0xa0,
Packit 577717
    .desc = "Cycles Writeback Buffer(WBB) > 1/2 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LOAD_MISS_CONSUMER_REPLAYS",
Packit 577717
    .code = 0x23,
Packit 577717
    .desc = "Replays following optimistic issue of instruction dependent on load which missed. Counted only when the dependent instruction graduates",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FPU_LOAD_INSNS",
Packit 577717
    .code = 0xa3,
Packit 577717
    .desc = "Floating Point Load instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "JR_NON_31_INSNS",
Packit 577717
    .code = 0x24,
Packit 577717
    .desc = "jr (not $31) instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MISPREDICTED_JR_31_INSNS",
Packit 577717
    .code = 0xa4,
Packit 577717
    .desc = "jr $31 mispredicted at graduation",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "INT_BRANCH_INSNS",
Packit 577717
    .code = 0x25,
Packit 577717
    .desc = "Integer branch instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FPU_BRANCH_INSNS",
Packit 577717
    .code = 0xa5,
Packit 577717
    .desc = "Floating point branch instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "BRANCH_LIKELY_INSNS",
Packit 577717
    .code = 0x26,
Packit 577717
    .desc = "Branch-likely instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MISPREDICTED_BRANCH_LIKELY_INSNS",
Packit 577717
    .code = 0xa6,
Packit 577717
    .desc = "Mispredicted branch-likely instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "COND_BRANCH_INSNS",
Packit 577717
    .code = 0x27,
Packit 577717
    .desc = "Conditional branches graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MISPREDICTED_BRANCH_INSNS",
Packit 577717
    .code = 0xa7,
Packit 577717
    .desc = "Mispredicted conditional branches graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "INTEGER_INSNS",
Packit 577717
    .code = 0x28,
Packit 577717
    .desc = "Integer instructions graduated (includes nop, ssnop, ehb as well as all arithmetic, logical, shift and extract type operations)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FPU_INSNS",
Packit 577717
    .code = 0xa8,
Packit 577717
    .desc = "Floating point instructions graduated (but not counting floating point load/store)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LOAD_INSNS",
Packit 577717
    .code = 0x29,
Packit 577717
    .desc = "Loads graduated (includes floating point)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "STORE_INSNS",
Packit 577717
    .code = 0xa9,
Packit 577717
    .desc = "Stores graduated (includes floating point). Of sc instructions, only successful ones are counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "J_JAL_INSNS",
Packit 577717
    .code = 0x2a,
Packit 577717
    .desc = "j/jal graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MIPS16_INSNS",
Packit 577717
    .code = 0xaa,
Packit 577717
    .desc = "MIPS16e instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "NOP_INSNS",
Packit 577717
    .code = 0x2b,
Packit 577717
    .desc = "no-ops graduated - included (sll, nop, ssnop, ehb)",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "NT_MUL_DIV_INSNS",
Packit 577717
    .code = 0xab,
Packit 577717
    .desc = "integer multiply/divides graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DSP_INSNS",
Packit 577717
    .code = 0x2c,
Packit 577717
    .desc = "DSP instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ALU_DSP_SATURATION_INSNS",
Packit 577717
    .code = 0xac,
Packit 577717
    .desc = "ALU-DSP instructions graduated, result was saturated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DSP_BRANCH_INSNS",
Packit 577717
    .code = 0x2d,
Packit 577717
    .desc = "DSP branch instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MDU_DSP_SATURATION_INSNS",
Packit 577717
    .code = 0xad,
Packit 577717
    .desc = "MDU-DSP instructions graduated, result was saturated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "UNCACHED_LOAD_INSNS",
Packit 577717
    .code = 0x2e,
Packit 577717
    .desc = "Uncached loads graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "UNCACHED_STORE_INSNS",
Packit 577717
    .code = 0xae,
Packit 577717
    .desc = "Uncached stores graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "EJTAG_INSN_TRIGGERS",
Packit 577717
    .code = 0x31,
Packit 577717
    .desc = "EJTAG instruction triggers",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "EJTAG_DATA_TRIGGERS",
Packit 577717
    .code = 0xb1,
Packit 577717
    .desc = "EJTAG data triggers",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "CP1_BRANCH_MISPREDICTIONS",
Packit 577717
    .code = 0x32,
Packit 577717
    .desc = "CP1 branches mispredicted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SC_INSNS",
Packit 577717
    .code = 0x33,
Packit 577717
    .desc = "sc instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FAILED_SC_INSNS",
Packit 577717
    .code = 0xb3,
Packit 577717
    .desc = "sc instructions failed",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "PREFETCH_INSNS",
Packit 577717
    .code = 0x34,
Packit 577717
    .desc = "prefetch instructions graduated at the top of LSGB",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "CACHE_HIT_PREFETCH_INSNS",
Packit 577717
    .code = 0xb4,
Packit 577717
    .desc = "prefetch instructions which did nothing, because they hit in the cache",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "NO_INSN_CYCLES",
Packit 577717
    .code = 0x35,
Packit 577717
    .desc = "Cycles where no instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LOAD_MISS_INSNS",
Packit 577717
    .code = 0xb5,
Packit 577717
    .desc = "Load misses graduated. Includes floating point loads",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "ONE_INSN_CYCLES",
Packit 577717
    .code = 0x36,
Packit 577717
    .desc = "Cycles where one instruction graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "TWO_INSNS_CYCLES",
Packit 577717
    .code = 0xb6,
Packit 577717
    .desc = "Cycles where two instructions graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "GFIFO_BLOCKED_CYCLES",
Packit 577717
    .code = 0x37,
Packit 577717
    .desc = "GFifo blocked cycles",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FPU_STORE_INSNS",
Packit 577717
    .code = 0xb7,
Packit 577717
    .desc = "Floating point stores graduated",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "GFIFO_BLOCKED_TLB_CACHE",
Packit 577717
    .code = 0x38,
Packit 577717
    .desc = "GFifo blocked due to TLB or Cacheop",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "NO_INSTRUCTIONS_FROM_REPLAY_CYCLES",
Packit 577717
    .code = 0xb8,
Packit 577717
    .desc = "Number of cycles no instructions graduated from the time the pipe was flushed because of a replay until the first new instruction graduates. This is an indicator of the graduation bandwidth loss due to replay. Often times this replay is a result of event 25 and therefor an indicator of bandwidth lost due to cache misses",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MISPREDICTION_BRANCH_NODELAY_CYCLES",
Packit 577717
    .code = 0x39, /* even counters event 57 (raw 57) */
Packit 577717
    .desc = "Slot 0 misprediction branch instruction graduation cycles without the delay slot"
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "MISPREDICTION_BRANCH_DELAY_WAIT_CYCLES",
Packit 577717
    .code = 0xb9, /* even counters event 57 (raw 57) */
Packit 577717
    .desc = "Cycles waiting for delay slot to graduate on a mispredicted branch",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "EXCEPTIONS_TAKEN",
Packit 577717
    .code = 0x3a,
Packit 577717
    .desc = "Exceptions taken",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "GRADUATION_REPLAYS",
Packit 577717
    .code = 0xba,
Packit 577717
    .desc = "Replays initiated from graduation",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "COREEXTEND_EVENTS",
Packit 577717
    .code = 0x3b,
Packit 577717
    .desc = "Implementation specific CorExtend event. The integrator of this core may connect the core pin UDI_perfcnt_event to an event to be counted. This is intended for use with the CorExtend interface",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "DSPRAM_EVENTS",
Packit 577717
    .code = 0xbe,
Packit 577717
    .desc = "Implementation-specific DSPRAM event. The integrator of this core may connect the core pin SP_prf_c13_e62_xx to the event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "L2_CACHE_SINGLE_BIT_ERRORS",
Packit 577717
    .code = 0x3f,
Packit 577717
    .desc = "L2 single-bit errors which were detected",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_0",
Packit 577717
    .code = 0x40,
Packit 577717
    .desc = "SI_Event[0] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[0] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_1",
Packit 577717
    .code = 0xc0,
Packit 577717
    .desc = "SI_Event[1] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[1] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_2",
Packit 577717
    .code = 0x41,
Packit 577717
    .desc = "SI_Event[2] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[2] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_3",
Packit 577717
    .code = 0xc1,
Packit 577717
    .desc = "SI_Event[3] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[3] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_4",
Packit 577717
    .code = 0x42,
Packit 577717
    .desc = "SI_Event[4] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[4] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_5",
Packit 577717
    .code = 0xc2,
Packit 577717
    .desc = "SI_Event[5] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[5] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_6",
Packit 577717
    .code = 0x43,
Packit 577717
    .desc = "SI_Event[6] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[6] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "SYSTEM_EVENT_7",
Packit 577717
    .code = 0xc3,
Packit 577717
    .desc = "SI_Event[7] - Implementation-specific system event. The integrator of this core may connect the core pin SI_PCEvent[7] to an event to be counted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_ALL_REQUESTS",
Packit 577717
    .code = 0x44,
Packit 577717
    .desc = "All OCP requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_ALL_CACHEABLE_REQUESTS",
Packit 577717
    .code = 0xc4,
Packit 577717
    .desc = "All OCP cacheable requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_READ_REQUESTS",
Packit 577717
    .code = 0x45,
Packit 577717
    .desc = "OCP read requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_READ_CACHEABLE_REQUESTS",
Packit 577717
    .code = 0xc5,
Packit 577717
    .desc = "OCP cacheable read requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_WRITE_REQUESTS",
Packit 577717
    .code = 0x46,
Packit 577717
    .desc = "OCP write requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_WRITE_CACHEABLE REQUESTS",
Packit 577717
    .code = 0xc6,
Packit 577717
    .desc = "OCP cacheable write requests accepted",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_WRITE_DATA_SENT",
Packit 577717
    .code = 0xc7,
Packit 577717
    .desc = "OCP write data sent",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "OCP_READ_DATA_RECEIVED",
Packit 577717
    .code = 0xc8,
Packit 577717
    .desc = "OCP read data received",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FSB_LESS_25_FULL",
Packit 577717
    .code = 0x4a,
Packit 577717
    .desc = "Cycles fill store buffer (FSB) < 1/4 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "FSB_25_50_FULL",
Packit 577717
    .code = 0xca,
Packit 577717
    .desc = "Cycles fill store buffer (FSB) 1/4 to 1/2 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LDQ_LESS_25_FULL",
Packit 577717
    .code = 0x4b,
Packit 577717
    .desc = "Cycles load data queue (LDQ) < 1/4 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "LDQ_25_50_FULL",
Packit 577717
    .code = 0xcb,
Packit 577717
    .desc = "Cycles load data queue (LDQ) 1/4 to 1/2 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "WBB_LESS_25_FULL",
Packit 577717
    .code = 0x4c,
Packit 577717
    .desc = "Cycles writeback buffer (WBB) < 1/4 full",
Packit 577717
  },
Packit 577717
  {
Packit 577717
    .name = "WBB_25_50_FULL",
Packit 577717
    .code = 0xcc,
Packit 577717
    .desc = "Cycles writeback buffer (WBB) 1/4 to 1/2 full",
Packit 577717
  },
Packit 577717
};