/*- * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2005 Joseph Koshy * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _DEV_HWPMC_PMC_EVENTS_H_ #define _DEV_HWPMC_PMC_EVENTS_H_ /* * Note: Documentation on adding events can be found online at: * * https://wiki.freebsd.org/PmcTools/PmcHardwareHowTo * * Please refer to this resource before you attempt to modify this file or the * hwpmc driver/subsystem. */ /* * PMC event codes. * * __PMC_EV(CLASS, SYMBOLIC-NAME) * */ /* timestamp counters. */ #define __PMC_EV_TSC() \ __PMC_EV(TSC, TSC) #define PMC_EV_TSC_FIRST PMC_EV_TSC_TSC #define PMC_EV_TSC_LAST PMC_EV_TSC_TSC #define __PMC_EV_ALIAS_TSC() \ __PMC_EV_ALIAS("cycles", TSC_TSC) /* * Software events are dynamically defined. */ #define PMC_EV_DYN_COUNT 0x1000 #define PMC_EV_SOFT_FIRST 0x20000 #define PMC_EV_SOFT_LAST (PMC_EV_SOFT_FIRST + PMC_EV_DYN_COUNT - 1) /* * AMD K7 Events, from "The AMD Athlon(tm) Processor x86 Code * Optimization Guide" [Doc#22007K, Feb 2002] */ #define __PMC_EV_K7() \ __PMC_EV(K7, DC_ACCESSES) \ __PMC_EV(K7, DC_MISSES) \ __PMC_EV(K7, DC_REFILLS_FROM_L2) \ __PMC_EV(K7, DC_REFILLS_FROM_SYSTEM) \ __PMC_EV(K7, DC_WRITEBACKS) \ __PMC_EV(K7, L1_DTLB_MISS_AND_L2_DTLB_HITS) \ __PMC_EV(K7, L1_AND_L2_DTLB_MISSES) \ __PMC_EV(K7, MISALIGNED_REFERENCES) \ __PMC_EV(K7, IC_FETCHES) \ __PMC_EV(K7, IC_MISSES) \ __PMC_EV(K7, L1_ITLB_MISSES) \ __PMC_EV(K7, L1_L2_ITLB_MISSES) \ __PMC_EV(K7, RETIRED_INSTRUCTIONS) \ __PMC_EV(K7, RETIRED_OPS) \ __PMC_EV(K7, RETIRED_BRANCHES) \ __PMC_EV(K7, RETIRED_BRANCHES_MISPREDICTED) \ __PMC_EV(K7, RETIRED_TAKEN_BRANCHES) \ __PMC_EV(K7, RETIRED_TAKEN_BRANCHES_MISPREDICTED) \ __PMC_EV(K7, RETIRED_FAR_CONTROL_TRANSFERS) \ __PMC_EV(K7, RETIRED_RESYNC_BRANCHES) \ __PMC_EV(K7, INTERRUPTS_MASKED_CYCLES) \ __PMC_EV(K7, INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \ __PMC_EV(K7, HARDWARE_INTERRUPTS) #define PMC_EV_K7_FIRST PMC_EV_K7_DC_ACCESSES #define PMC_EV_K7_LAST PMC_EV_K7_HARDWARE_INTERRUPTS /* AMD K8 PMCs */ #define __PMC_EV_K8() \ __PMC_EV(K8, FP_DISPATCHED_FPU_OPS) \ __PMC_EV(K8, FP_CYCLES_WITH_NO_FPU_OPS_RETIRED) \ __PMC_EV(K8, FP_DISPATCHED_FPU_FAST_FLAG_OPS) \ __PMC_EV(K8, LS_SEGMENT_REGISTER_LOAD) \ __PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SELF_MODIFYING_CODE) \ __PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \ __PMC_EV(K8, LS_BUFFER2_FULL) \ __PMC_EV(K8, LS_LOCKED_OPERATION) \ __PMC_EV(K8, LS_MICROARCHITECTURAL_LATE_CANCEL) \ __PMC_EV(K8, LS_RETIRED_CFLUSH_INSTRUCTIONS) \ __PMC_EV(K8, LS_RETIRED_CPUID_INSTRUCTIONS) \ __PMC_EV(K8, DC_ACCESS) \ __PMC_EV(K8, DC_MISS) \ __PMC_EV(K8, DC_REFILL_FROM_L2) \ __PMC_EV(K8, DC_REFILL_FROM_SYSTEM) \ __PMC_EV(K8, DC_COPYBACK) \ __PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_HIT) \ __PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_MISS) \ __PMC_EV(K8, DC_MISALIGNED_DATA_REFERENCE) \ __PMC_EV(K8, DC_MICROARCHITECTURAL_LATE_CANCEL) \ __PMC_EV(K8, DC_MICROARCHITECTURAL_EARLY_CANCEL) \ __PMC_EV(K8, DC_ONE_BIT_ECC_ERROR) \ __PMC_EV(K8, DC_DISPATCHED_PREFETCH_INSTRUCTIONS) \ __PMC_EV(K8, DC_DCACHE_ACCESSES_BY_LOCKS) \ __PMC_EV(K8, BU_CPU_CLK_UNHALTED) \ __PMC_EV(K8, BU_INTERNAL_L2_REQUEST) \ __PMC_EV(K8, BU_FILL_REQUEST_L2_MISS) \ __PMC_EV(K8, BU_FILL_INTO_L2) \ __PMC_EV(K8, IC_FETCH) \ __PMC_EV(K8, IC_MISS) \ __PMC_EV(K8, IC_REFILL_FROM_L2) \ __PMC_EV(K8, IC_REFILL_FROM_SYSTEM) \ __PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_HIT) \ __PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_MISS) \ __PMC_EV(K8, IC_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \ __PMC_EV(K8, IC_INSTRUCTION_FETCH_STALL) \ __PMC_EV(K8, IC_RETURN_STACK_HIT) \ __PMC_EV(K8, IC_RETURN_STACK_OVERFLOW) \ __PMC_EV(K8, FR_RETIRED_X86_INSTRUCTIONS) \ __PMC_EV(K8, FR_RETIRED_UOPS) \ __PMC_EV(K8, FR_RETIRED_BRANCHES) \ __PMC_EV(K8, FR_RETIRED_BRANCHES_MISPREDICTED) \ __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES) \ __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED) \ __PMC_EV(K8, FR_RETIRED_FAR_CONTROL_TRANSFERS) \ __PMC_EV(K8, FR_RETIRED_RESYNCS) \ __PMC_EV(K8, FR_RETIRED_NEAR_RETURNS) \ __PMC_EV(K8, FR_RETIRED_NEAR_RETURNS_MISPREDICTED) \ __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED_BY_ADDR_MISCOMPARE) \ __PMC_EV(K8, FR_RETIRED_FPU_INSTRUCTIONS) \ __PMC_EV(K8, FR_RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS) \ __PMC_EV(K8, FR_INTERRUPTS_MASKED_CYCLES) \ __PMC_EV(K8, FR_INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \ __PMC_EV(K8, FR_TAKEN_HARDWARE_INTERRUPTS) \ __PMC_EV(K8, FR_DECODER_EMPTY) \ __PMC_EV(K8, FR_DISPATCH_STALLS) \ __PMC_EV(K8, FR_DISPATCH_STALL_FROM_BRANCH_ABORT_TO_RETIRE) \ __PMC_EV(K8, FR_DISPATCH_STALL_FOR_SERIALIZATION) \ __PMC_EV(K8, FR_DISPATCH_STALL_FOR_SEGMENT_LOAD) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_REORDER_BUFFER_IS_FULL) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_RESERVATION_STATIONS_ARE_FULL) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FPU_IS_FULL) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_LS_IS_FULL) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_WAITING_FOR_ALL_TO_BE_QUIET) \ __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FAR_XFER_OR_RESYNC_BRANCH_PENDING) \ __PMC_EV(K8, FR_FPU_EXCEPTIONS) \ __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR0) \ __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR1) \ __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR2) \ __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR3) \ __PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_ACCESS_EVENT) \ __PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOW) \ __PMC_EV(K8, NB_MEMORY_CONTROLLER_DRAM_COMMAND_SLOTS_MISSED) \ __PMC_EV(K8, NB_MEMORY_CONTROLLER_TURNAROUND) \ __PMC_EV(K8, NB_MEMORY_CONTROLLER_BYPASS_SATURATION) \ __PMC_EV(K8, NB_SIZED_COMMANDS) \ __PMC_EV(K8, NB_PROBE_RESULT) \ __PMC_EV(K8, NB_HT_BUS0_BANDWIDTH) \ __PMC_EV(K8, NB_HT_BUS1_BANDWIDTH) \ __PMC_EV(K8, NB_HT_BUS2_BANDWIDTH) #define PMC_EV_K8_FIRST PMC_EV_K8_FP_DISPATCHED_FPU_OPS #define PMC_EV_K8_LAST PMC_EV_K8_NB_HT_BUS2_BANDWIDTH /* * Events supported by Intel architectural fixed function counters, * from the "Intel 64 and IA-32 Architectures Software Developer's * Manual Volume 3B: System Programming Guide, Part 2", July 2008. */ #define __PMC_EV_IAF() \ __PMC_EV(IAF, INSTR_RETIRED_ANY) \ __PMC_EV(IAF, CPU_CLK_UNHALTED_CORE) \ __PMC_EV(IAF, CPU_CLK_UNHALTED_REF) #define PMC_EV_IAF_FIRST PMC_EV_IAF_INSTR_RETIRED_ANY #define PMC_EV_IAF_LAST PMC_EV_IAF_CPU_CLK_UNHALTED_REF #define __PMC_EV_ALIAS_IAF() \ __PMC_EV_ALIAS("instruction-retired", IAF_INSTR_RETIRED_ANY) \ __PMC_EV_ALIAS("unhalted-core-cycles", IAF_CPU_CLK_UNHALTED_CORE) \ __PMC_EV_ALIAS("unhalted-reference-cycles", IAF_CPU_CLK_UNHALTED_REF) /* * ARMv7 Events */ #define __PMC_EV_ARMV7() \ __PMC_EV(ARMV7, EVENT_00H) \ __PMC_EV(ARMV7, EVENT_01H) \ __PMC_EV(ARMV7, EVENT_02H) \ __PMC_EV(ARMV7, EVENT_03H) \ __PMC_EV(ARMV7, EVENT_04H) \ __PMC_EV(ARMV7, EVENT_05H) \ __PMC_EV(ARMV7, EVENT_06H) \ __PMC_EV(ARMV7, EVENT_07H) \ __PMC_EV(ARMV7, EVENT_08H) \ __PMC_EV(ARMV7, EVENT_09H) \ __PMC_EV(ARMV7, EVENT_0AH) \ __PMC_EV(ARMV7, EVENT_0BH) \ __PMC_EV(ARMV7, EVENT_0CH) \ __PMC_EV(ARMV7, EVENT_0DH) \ __PMC_EV(ARMV7, EVENT_0EH) \ __PMC_EV(ARMV7, EVENT_0FH) \ __PMC_EV(ARMV7, EVENT_10H) \ __PMC_EV(ARMV7, EVENT_11H) \ __PMC_EV(ARMV7, EVENT_12H) \ __PMC_EV(ARMV7, EVENT_13H) \ __PMC_EV(ARMV7, EVENT_14H) \ __PMC_EV(ARMV7, EVENT_15H) \ __PMC_EV(ARMV7, EVENT_16H) \ __PMC_EV(ARMV7, EVENT_17H) \ __PMC_EV(ARMV7, EVENT_18H) \ __PMC_EV(ARMV7, EVENT_19H) \ __PMC_EV(ARMV7, EVENT_1AH) \ __PMC_EV(ARMV7, EVENT_1BH) \ __PMC_EV(ARMV7, EVENT_1CH) \ __PMC_EV(ARMV7, EVENT_1DH) \ __PMC_EV(ARMV7, EVENT_1EH) \ __PMC_EV(ARMV7, EVENT_1FH) \ __PMC_EV(ARMV7, EVENT_20H) \ __PMC_EV(ARMV7, EVENT_21H) \ __PMC_EV(ARMV7, EVENT_22H) \ __PMC_EV(ARMV7, EVENT_23H) \ __PMC_EV(ARMV7, EVENT_24H) \ __PMC_EV(ARMV7, EVENT_25H) \ __PMC_EV(ARMV7, EVENT_26H) \ __PMC_EV(ARMV7, EVENT_27H) \ __PMC_EV(ARMV7, EVENT_28H) \ __PMC_EV(ARMV7, EVENT_29H) \ __PMC_EV(ARMV7, EVENT_2AH) \ __PMC_EV(ARMV7, EVENT_2BH) \ __PMC_EV(ARMV7, EVENT_2CH) \ __PMC_EV(ARMV7, EVENT_2DH) \ __PMC_EV(ARMV7, EVENT_2EH) \ __PMC_EV(ARMV7, EVENT_2FH) \ __PMC_EV(ARMV7, EVENT_30H) \ __PMC_EV(ARMV7, EVENT_31H) \ __PMC_EV(ARMV7, EVENT_32H) \ __PMC_EV(ARMV7, EVENT_33H) \ __PMC_EV(ARMV7, EVENT_34H) \ __PMC_EV(ARMV7, EVENT_35H) \ __PMC_EV(ARMV7, EVENT_36H) \ __PMC_EV(ARMV7, EVENT_37H) \ __PMC_EV(ARMV7, EVENT_38H) \ __PMC_EV(ARMV7, EVENT_39H) \ __PMC_EV(ARMV7, EVENT_3AH) \ __PMC_EV(ARMV7, EVENT_3BH) \ __PMC_EV(ARMV7, EVENT_3CH) \ __PMC_EV(ARMV7, EVENT_3DH) \ __PMC_EV(ARMV7, EVENT_3EH) \ __PMC_EV(ARMV7, EVENT_3FH) \ __PMC_EV(ARMV7, EVENT_40H) \ __PMC_EV(ARMV7, EVENT_41H) \ __PMC_EV(ARMV7, EVENT_42H) \ __PMC_EV(ARMV7, EVENT_43H) \ __PMC_EV(ARMV7, EVENT_44H) \ __PMC_EV(ARMV7, EVENT_45H) \ __PMC_EV(ARMV7, EVENT_46H) \ __PMC_EV(ARMV7, EVENT_47H) \ __PMC_EV(ARMV7, EVENT_48H) \ __PMC_EV(ARMV7, EVENT_49H) \ __PMC_EV(ARMV7, EVENT_4AH) \ __PMC_EV(ARMV7, EVENT_4BH) \ __PMC_EV(ARMV7, EVENT_4CH) \ __PMC_EV(ARMV7, EVENT_4DH) \ __PMC_EV(ARMV7, EVENT_4EH) \ __PMC_EV(ARMV7, EVENT_4FH) \ __PMC_EV(ARMV7, EVENT_50H) \ __PMC_EV(ARMV7, EVENT_51H) \ __PMC_EV(ARMV7, EVENT_52H) \ __PMC_EV(ARMV7, EVENT_53H) \ __PMC_EV(ARMV7, EVENT_54H) \ __PMC_EV(ARMV7, EVENT_55H) \ __PMC_EV(ARMV7, EVENT_56H) \ __PMC_EV(ARMV7, EVENT_57H) \ __PMC_EV(ARMV7, EVENT_58H) \ __PMC_EV(ARMV7, EVENT_59H) \ __PMC_EV(ARMV7, EVENT_5AH) \ __PMC_EV(ARMV7, EVENT_5BH) \ __PMC_EV(ARMV7, EVENT_5CH) \ __PMC_EV(ARMV7, EVENT_5DH) \ __PMC_EV(ARMV7, EVENT_5EH) \ __PMC_EV(ARMV7, EVENT_5FH) \ __PMC_EV(ARMV7, EVENT_60H) \ __PMC_EV(ARMV7, EVENT_61H) \ __PMC_EV(ARMV7, EVENT_62H) \ __PMC_EV(ARMV7, EVENT_63H) \ __PMC_EV(ARMV7, EVENT_64H) \ __PMC_EV(ARMV7, EVENT_65H) \ __PMC_EV(ARMV7, EVENT_66H) \ __PMC_EV(ARMV7, EVENT_67H) \ __PMC_EV(ARMV7, EVENT_68H) \ __PMC_EV(ARMV7, EVENT_69H) \ __PMC_EV(ARMV7, EVENT_6AH) \ __PMC_EV(ARMV7, EVENT_6BH) \ __PMC_EV(ARMV7, EVENT_6CH) \ __PMC_EV(ARMV7, EVENT_6DH) \ __PMC_EV(ARMV7, EVENT_6EH) \ __PMC_EV(ARMV7, EVENT_6FH) \ __PMC_EV(ARMV7, EVENT_70H) \ __PMC_EV(ARMV7, EVENT_71H) \ __PMC_EV(ARMV7, EVENT_72H) \ __PMC_EV(ARMV7, EVENT_73H) \ __PMC_EV(ARMV7, EVENT_74H) \ __PMC_EV(ARMV7, EVENT_75H) \ __PMC_EV(ARMV7, EVENT_76H) \ __PMC_EV(ARMV7, EVENT_77H) \ __PMC_EV(ARMV7, EVENT_78H) \ __PMC_EV(ARMV7, EVENT_79H) \ __PMC_EV(ARMV7, EVENT_7AH) \ __PMC_EV(ARMV7, EVENT_7BH) \ __PMC_EV(ARMV7, EVENT_7CH) \ __PMC_EV(ARMV7, EVENT_7DH) \ __PMC_EV(ARMV7, EVENT_7EH) \ __PMC_EV(ARMV7, EVENT_7FH) \ __PMC_EV(ARMV7, EVENT_80H) \ __PMC_EV(ARMV7, EVENT_81H) \ __PMC_EV(ARMV7, EVENT_82H) \ __PMC_EV(ARMV7, EVENT_83H) \ __PMC_EV(ARMV7, EVENT_84H) \ __PMC_EV(ARMV7, EVENT_85H) \ __PMC_EV(ARMV7, EVENT_86H) \ __PMC_EV(ARMV7, EVENT_87H) \ __PMC_EV(ARMV7, EVENT_88H) \ __PMC_EV(ARMV7, EVENT_89H) \ __PMC_EV(ARMV7, EVENT_8AH) \ __PMC_EV(ARMV7, EVENT_8BH) \ __PMC_EV(ARMV7, EVENT_8CH) \ __PMC_EV(ARMV7, EVENT_8DH) \ __PMC_EV(ARMV7, EVENT_8EH) \ __PMC_EV(ARMV7, EVENT_8FH) \ __PMC_EV(ARMV7, EVENT_90H) \ __PMC_EV(ARMV7, EVENT_91H) \ __PMC_EV(ARMV7, EVENT_92H) \ __PMC_EV(ARMV7, EVENT_93H) \ __PMC_EV(ARMV7, EVENT_94H) \ __PMC_EV(ARMV7, EVENT_95H) \ __PMC_EV(ARMV7, EVENT_96H) \ __PMC_EV(ARMV7, EVENT_97H) \ __PMC_EV(ARMV7, EVENT_98H) \ __PMC_EV(ARMV7, EVENT_99H) \ __PMC_EV(ARMV7, EVENT_9AH) \ __PMC_EV(ARMV7, EVENT_9BH) \ __PMC_EV(ARMV7, EVENT_9CH) \ __PMC_EV(ARMV7, EVENT_9DH) \ __PMC_EV(ARMV7, EVENT_9EH) \ __PMC_EV(ARMV7, EVENT_9FH) \ __PMC_EV(ARMV7, EVENT_A0H) \ __PMC_EV(ARMV7, EVENT_A1H) \ __PMC_EV(ARMV7, EVENT_A2H) \ __PMC_EV(ARMV7, EVENT_A3H) \ __PMC_EV(ARMV7, EVENT_A4H) \ __PMC_EV(ARMV7, EVENT_A5H) \ __PMC_EV(ARMV7, EVENT_A6H) \ __PMC_EV(ARMV7, EVENT_A7H) \ __PMC_EV(ARMV7, EVENT_A8H) \ __PMC_EV(ARMV7, EVENT_A9H) \ __PMC_EV(ARMV7, EVENT_AAH) \ __PMC_EV(ARMV7, EVENT_ABH) \ __PMC_EV(ARMV7, EVENT_ACH) \ __PMC_EV(ARMV7, EVENT_ADH) \ __PMC_EV(ARMV7, EVENT_AEH) \ __PMC_EV(ARMV7, EVENT_AFH) \ __PMC_EV(ARMV7, EVENT_B0H) \ __PMC_EV(ARMV7, EVENT_B1H) \ __PMC_EV(ARMV7, EVENT_B2H) \ __PMC_EV(ARMV7, EVENT_B3H) \ __PMC_EV(ARMV7, EVENT_B4H) \ __PMC_EV(ARMV7, EVENT_B5H) \ __PMC_EV(ARMV7, EVENT_B6H) \ __PMC_EV(ARMV7, EVENT_B7H) \ __PMC_EV(ARMV7, EVENT_B8H) \ __PMC_EV(ARMV7, EVENT_B9H) \ __PMC_EV(ARMV7, EVENT_BAH) \ __PMC_EV(ARMV7, EVENT_BBH) \ __PMC_EV(ARMV7, EVENT_BCH) \ __PMC_EV(ARMV7, EVENT_BDH) \ __PMC_EV(ARMV7, EVENT_BEH) \ __PMC_EV(ARMV7, EVENT_BFH) \ __PMC_EV(ARMV7, EVENT_C0H) \ __PMC_EV(ARMV7, EVENT_C1H) \ __PMC_EV(ARMV7, EVENT_C2H) \ __PMC_EV(ARMV7, EVENT_C3H) \ __PMC_EV(ARMV7, EVENT_C4H) \ __PMC_EV(ARMV7, EVENT_C5H) \ __PMC_EV(ARMV7, EVENT_C6H) \ __PMC_EV(ARMV7, EVENT_C7H) \ __PMC_EV(ARMV7, EVENT_C8H) \ __PMC_EV(ARMV7, EVENT_C9H) \ __PMC_EV(ARMV7, EVENT_CAH) \ __PMC_EV(ARMV7, EVENT_CBH) \ __PMC_EV(ARMV7, EVENT_CCH) \ __PMC_EV(ARMV7, EVENT_CDH) \ __PMC_EV(ARMV7, EVENT_CEH) \ __PMC_EV(ARMV7, EVENT_CFH) \ __PMC_EV(ARMV7, EVENT_D0H) \ __PMC_EV(ARMV7, EVENT_D1H) \ __PMC_EV(ARMV7, EVENT_D2H) \ __PMC_EV(ARMV7, EVENT_D3H) \ __PMC_EV(ARMV7, EVENT_D4H) \ __PMC_EV(ARMV7, EVENT_D5H) \ __PMC_EV(ARMV7, EVENT_D6H) \ __PMC_EV(ARMV7, EVENT_D7H) \ __PMC_EV(ARMV7, EVENT_D8H) \ __PMC_EV(ARMV7, EVENT_D9H) \ __PMC_EV(ARMV7, EVENT_DAH) \ __PMC_EV(ARMV7, EVENT_DBH) \ __PMC_EV(ARMV7, EVENT_DCH) \ __PMC_EV(ARMV7, EVENT_DDH) \ __PMC_EV(ARMV7, EVENT_DEH) \ __PMC_EV(ARMV7, EVENT_DFH) \ __PMC_EV(ARMV7, EVENT_E0H) \ __PMC_EV(ARMV7, EVENT_E1H) \ __PMC_EV(ARMV7, EVENT_E2H) \ __PMC_EV(ARMV7, EVENT_E3H) \ __PMC_EV(ARMV7, EVENT_E4H) \ __PMC_EV(ARMV7, EVENT_E5H) \ __PMC_EV(ARMV7, EVENT_E6H) \ __PMC_EV(ARMV7, EVENT_E7H) \ __PMC_EV(ARMV7, EVENT_E8H) \ __PMC_EV(ARMV7, EVENT_E9H) \ __PMC_EV(ARMV7, EVENT_EAH) \ __PMC_EV(ARMV7, EVENT_EBH) \ __PMC_EV(ARMV7, EVENT_ECH) \ __PMC_EV(ARMV7, EVENT_EDH) \ __PMC_EV(ARMV7, EVENT_EEH) \ __PMC_EV(ARMV7, EVENT_EFH) \ __PMC_EV(ARMV7, EVENT_F0H) \ __PMC_EV(ARMV7, EVENT_F1H) \ __PMC_EV(ARMV7, EVENT_F2H) \ __PMC_EV(ARMV7, EVENT_F3H) \ __PMC_EV(ARMV7, EVENT_F4H) \ __PMC_EV(ARMV7, EVENT_F5H) \ __PMC_EV(ARMV7, EVENT_F6H) \ __PMC_EV(ARMV7, EVENT_F7H) \ __PMC_EV(ARMV7, EVENT_F8H) \ __PMC_EV(ARMV7, EVENT_F9H) \ __PMC_EV(ARMV7, EVENT_FAH) \ __PMC_EV(ARMV7, EVENT_FBH) \ __PMC_EV(ARMV7, EVENT_FCH) \ __PMC_EV(ARMV7, EVENT_FDH) \ __PMC_EV(ARMV7, EVENT_FEH) \ __PMC_EV(ARMV7, EVENT_FFH) #define PMC_EV_ARMV7_FIRST PMC_EV_ARMV7_EVENT_00H #define PMC_EV_ARMV7_LAST PMC_EV_ARMV7_EVENT_FFH #define __PMC_EV_ALIAS_ARMV7_COMMON() \ __PMC_EV_ALIAS("PMNC_SW_INCR", ARMV7_EVENT_00H) \ __PMC_EV_ALIAS("L1_ICACHE_REFILL", ARMV7_EVENT_01H) \ __PMC_EV_ALIAS("ITLB_REFILL", ARMV7_EVENT_02H) \ __PMC_EV_ALIAS("L1_DCACHE_REFILL", ARMV7_EVENT_03H) \ __PMC_EV_ALIAS("L1_DCACHE_ACCESS", ARMV7_EVENT_04H) \ __PMC_EV_ALIAS("DTLB_REFILL", ARMV7_EVENT_05H) \ __PMC_EV_ALIAS("MEM_READ", ARMV7_EVENT_06H) \ __PMC_EV_ALIAS("MEM_WRITE", ARMV7_EVENT_07H) \ __PMC_EV_ALIAS("EXC_TAKEN", ARMV7_EVENT_09H) \ __PMC_EV_ALIAS("EXC_EXECUTED", ARMV7_EVENT_0AH) \ __PMC_EV_ALIAS("CID_WRITE", ARMV7_EVENT_0BH) \ __PMC_EV_ALIAS("PC_WRITE", ARMV7_EVENT_0CH) \ __PMC_EV_ALIAS("PC_IMM_BRANCH", ARMV7_EVENT_0DH) \ __PMC_EV_ALIAS("MEM_UNALIGNED_ACCESS", ARMV7_EVENT_0FH) \ __PMC_EV_ALIAS("PC_BRANCH_MIS_PRED", ARMV7_EVENT_10H) \ __PMC_EV_ALIAS("CLOCK_CYCLES", ARMV7_EVENT_11H) \ __PMC_EV_ALIAS("PC_BRANCH_PRED", ARMV7_EVENT_12H) #define __PMC_EV_ALIAS_ARMV7_COMMON_A8() \ __PMC_EV_ALIAS_ARMV7_COMMON() \ __PMC_EV_ALIAS("INSTR_EXECUTED", ARMV7_EVENT_08H) \ __PMC_EV_ALIAS("PC_PROC_RETURN", ARMV7_EVENT_0EH) \ __PMC_EV_ALIAS("MEM_ACCESS", ARMV7_EVENT_13H) \ __PMC_EV_ALIAS("L1_ICACHE_ACCESS", ARMV7_EVENT_14H) \ __PMC_EV_ALIAS("L1_DCACHE_WB", ARMV7_EVENT_15H) \ __PMC_EV_ALIAS("L2_CACHE_ACCESS", ARMV7_EVENT_16H) \ __PMC_EV_ALIAS("L2_CACHE_REFILL", ARMV7_EVENT_17H) \ __PMC_EV_ALIAS("L2_CACHE_WB", ARMV7_EVENT_18H) \ __PMC_EV_ALIAS("BUS_ACCESS", ARMV7_EVENT_19H) \ __PMC_EV_ALIAS("MEM_ERROR", ARMV7_EVENT_1AH) \ __PMC_EV_ALIAS("INSTR_SPEC", ARMV7_EVENT_1BH) \ __PMC_EV_ALIAS("TTBR_WRITE", ARMV7_EVENT_1CH) \ __PMC_EV_ALIAS("BUS_CYCLES", ARMV7_EVENT_1DH) \ __PMC_EV_ALIAS("CPU_CYCLES", ARMV7_EVENT_FFH) #define __PMC_EV_ALIAS_ARMV7_CORTEX_A8() \ __PMC_EV_ALIAS_ARMV7_COMMON_A8() \ __PMC_EV_ALIAS("WRITE_BUF_FULL", ARMV7_EVENT_40H) \ __PMC_EV_ALIAS("L2_STORE_MERGED", ARMV7_EVENT_41H) \ __PMC_EV_ALIAS("L2_STORE_BUFFERABLE", ARMV7_EVENT_42H) \ __PMC_EV_ALIAS("L2_ACCESS", ARMV7_EVENT_43H) \ __PMC_EV_ALIAS("L2_CACHE_MISS", ARMV7_EVENT_44H) \ __PMC_EV_ALIAS("AXI_READ", ARMV7_EVENT_45H) \ __PMC_EV_ALIAS("AXI_WRITE", ARMV7_EVENT_46H) \ __PMC_EV_ALIAS("MEM_REPLAY_EVT", ARMV7_EVENT_47H) \ __PMC_EV_ALIAS("MEM_UNALIGNED_ACCESS_REPLAY", ARMV7_EVENT_48H) \ __PMC_EV_ALIAS("L1_DCACHE_HASH_MISS", ARMV7_EVENT_49H) \ __PMC_EV_ALIAS("L1_ICACHE_HASH_MISS", ARMV7_EVENT_4AH) \ __PMC_EV_ALIAS("L1_CACHE_PAGECOL_ALIAS", ARMV7_EVENT_4BH) \ __PMC_EV_ALIAS("L1_DCACHE_NEON_ACCESS", ARMV7_EVENT_4CH) \ __PMC_EV_ALIAS("L1_DCACHE_NEON_CACHEABLE", ARMV7_EVENT_4DH) \ __PMC_EV_ALIAS("L2_CACHE_NEON_MEM_ACCESS", ARMV7_EVENT_4EH) \ __PMC_EV_ALIAS("L2_CACHE_NEON_HIT", ARMV7_EVENT_4FH) \ __PMC_EV_ALIAS("L1_CACHE_ACCESS_NOCP15", ARMV7_EVENT_50H) \ __PMC_EV_ALIAS("RET_STACK_MISPREDICT", ARMV7_EVENT_51H) \ __PMC_EV_ALIAS("BRANCH_DIR_MISPREDICT", ARMV7_EVENT_52H) \ __PMC_EV_ALIAS("PRED_BRANCH_PRED_TAKEN", ARMV7_EVENT_53H) \ __PMC_EV_ALIAS("PRED_BRANCH_EXEC_TAKEN", ARMV7_EVENT_54H) \ __PMC_EV_ALIAS("OPS_ISSUED", ARMV7_EVENT_55H) \ __PMC_EV_ALIAS("CYCLES_NO_INSTRUCTION", ARMV7_EVENT_56H) \ __PMC_EV_ALIAS("INSTRUCTIONS_ISSUED_CYCLE", ARMV7_EVENT_57H) \ __PMC_EV_ALIAS("CYCLES_STALLED_NEON_MRC", ARMV7_EVENT_58H) \ __PMC_EV_ALIAS("CYCLES_STALLED_NEON_FULLQ", ARMV7_EVENT_59H) \ __PMC_EV_ALIAS("CYCLES_NONIDLE_NEON_INT", ARMV7_EVENT_5AH) \ __PMC_EV_ALIAS("PMUEXTIN0_EVT", ARMV7_EVENT_70H) \ __PMC_EV_ALIAS("PMUEXTIN1_EVT", ARMV7_EVENT_71H) \ __PMC_EV_ALIAS("PMUEXTIN_EVT", ARMV7_EVENT_72H) #define PMC_EV_ARMV7_CORTEX_A8_FIRST PMC_EV_ARMV7_PMNC_SW_INCR #define PMC_EV_ARMV7_CORTEX_A8_LAST PMC_EV_ARMV7_PMUEXTIN_EVT #define __PMC_EV_ALIAS_ARMV7_CORTEX_A9() \ __PMC_EV_ALIAS_ARMV7_COMMON() \ __PMC_EV_ALIAS("JAVA_BYTECODE", ARMV7_EVENT_40H) \ __PMC_EV_ALIAS("SOFTWARE_JAVA_BYTECODE", ARMV7_EVENT_41H) \ __PMC_EV_ALIAS("JAZELLE_BACKWARD_BRANCH", ARMV7_EVENT_42H) \ __PMC_EV_ALIAS("COHERENT_LINEFILL_MISSC", ARMV7_EVENT_50H) \ __PMC_EV_ALIAS("COHERENT_LINEFILL_HITC", ARMV7_EVENT_51H) \ __PMC_EV_ALIAS("INSTR_CACHE_DEPENDENT_STALL", ARMV7_EVENT_60H) \ __PMC_EV_ALIAS("DATA_CACHE_DEPENDENT_STALL", ARMV7_EVENT_61H) \ __PMC_EV_ALIAS("MAIN_TLB_MISS_STALL", ARMV7_EVENT_62H) \ __PMC_EV_ALIAS("STREX_PASSED", ARMV7_EVENT_63H) \ __PMC_EV_ALIAS("STREX_FAILED", ARMV7_EVENT_64H) \ __PMC_EV_ALIAS("DATA_EVICTION", ARMV7_EVENT_65H) \ __PMC_EV_ALIAS("ISSUE_DNOT_DISPATCH_ANY_INSTR", ARMV7_EVENT_66H) \ __PMC_EV_ALIAS("ISSUE_IS_EMPTY", ARMV7_EVENT_67H) \ __PMC_EV_ALIAS("INSTR_RENAMED", ARMV7_EVENT_68H) \ __PMC_EV_ALIAS("PREDICTABLE_FUNCTION_RETURN", ARMV7_EVENT_6EH) \ __PMC_EV_ALIAS("MAIN_EXECUTION_UNIT_PIPE", ARMV7_EVENT_70H) \ __PMC_EV_ALIAS("SECOND_EXECUTION_UNIT_PIPE", ARMV7_EVENT_71H) \ __PMC_EV_ALIAS("LOAD_STORE_PIPE", ARMV7_EVENT_72H) \ __PMC_EV_ALIAS("FLOATING_POINT_INSTR_RENAMED", ARMV7_EVENT_73H) \ __PMC_EV_ALIAS("NEON_INSTRS_RENAMED", ARMV7_EVENT_74H) \ __PMC_EV_ALIAS("PLD_STALL", ARMV7_EVENT_80H) \ __PMC_EV_ALIAS("WRITE_STALL", ARMV7_EVENT_81H) \ __PMC_EV_ALIAS("INSTR_MAIN_TLB_MISS_STALL", ARMV7_EVENT_82H) \ __PMC_EV_ALIAS("DATA_MAIN_TLB_MISS_STALL", ARMV7_EVENT_83H) \ __PMC_EV_ALIAS("INSTR_MICRO_TLB_MISS_STALL", ARMV7_EVENT_84H) \ __PMC_EV_ALIAS("DATA_MICRO_TLB_MISS_STALL", ARMV7_EVENT_85H) \ __PMC_EV_ALIAS("DMB_STALL", ARMV7_EVENT_86H) \ __PMC_EV_ALIAS("INTEGER_CORE_CLOCK_ENABLED", ARMV7_EVENT_8AH) \ __PMC_EV_ALIAS("DATA_ENGINE_CLOCK_ENABLED", ARMV7_EVENT_8BH) \ __PMC_EV_ALIAS("ISB", ARMV7_EVENT_90H) \ __PMC_EV_ALIAS("DSB", ARMV7_EVENT_91H) \ __PMC_EV_ALIAS("DMB", ARMV7_EVENT_92H) \ __PMC_EV_ALIAS("EXTERNAL_INTERRUPT", ARMV7_EVENT_93H) \ __PMC_EV_ALIAS("PLE_CACHE_LINE_REQ_COMPLETED", ARMV7_EVENT_A0H) \ __PMC_EV_ALIAS("PLE_CACHE_LINE_REQ_SKIPPED", ARMV7_EVENT_A1H) \ __PMC_EV_ALIAS("PLE_FIFO_FLUSH", ARMV7_EVENT_A2H) \ __PMC_EV_ALIAS("PLE_REQUEST_COMPLETED", ARMV7_EVENT_A3H) \ __PMC_EV_ALIAS("PLE_FIFO_OVERFLOW", ARMV7_EVENT_A4H) \ __PMC_EV_ALIAS("PLE_REQUEST_PROGRAMMED", ARMV7_EVENT_A5H) /* * ARMv8 Events * * NB: ARMv8.1 extends this to a 16-bit encoding, but we only define the 10-bit * event numbers here. */ #define __PMC_EV_ARMV8() \ __PMC_EV(ARMV8, EVENT_00H) \ __PMC_EV(ARMV8, EVENT_01H) \ __PMC_EV(ARMV8, EVENT_02H) \ __PMC_EV(ARMV8, EVENT_03H) \ __PMC_EV(ARMV8, EVENT_04H) \ __PMC_EV(ARMV8, EVENT_05H) \ __PMC_EV(ARMV8, EVENT_06H) \ __PMC_EV(ARMV8, EVENT_07H) \ __PMC_EV(ARMV8, EVENT_08H) \ __PMC_EV(ARMV8, EVENT_09H) \ __PMC_EV(ARMV8, EVENT_0AH) \ __PMC_EV(ARMV8, EVENT_0BH) \ __PMC_EV(ARMV8, EVENT_0CH) \ __PMC_EV(ARMV8, EVENT_0DH) \ __PMC_EV(ARMV8, EVENT_0EH) \ __PMC_EV(ARMV8, EVENT_0FH) \ __PMC_EV(ARMV8, EVENT_10H) \ __PMC_EV(ARMV8, EVENT_11H) \ __PMC_EV(ARMV8, EVENT_12H) \ __PMC_EV(ARMV8, EVENT_13H) \ __PMC_EV(ARMV8, EVENT_14H) \ __PMC_EV(ARMV8, EVENT_15H) \ __PMC_EV(ARMV8, EVENT_16H) \ __PMC_EV(ARMV8, EVENT_17H) \ __PMC_EV(ARMV8, EVENT_18H) \ __PMC_EV(ARMV8, EVENT_19H) \ __PMC_EV(ARMV8, EVENT_1AH) \ __PMC_EV(ARMV8, EVENT_1BH) \ __PMC_EV(ARMV8, EVENT_1CH) \ __PMC_EV(ARMV8, EVENT_1DH) \ __PMC_EV(ARMV8, EVENT_1EH) \ __PMC_EV(ARMV8, EVENT_1FH) \ __PMC_EV(ARMV8, EVENT_20H) \ __PMC_EV(ARMV8, EVENT_21H) \ __PMC_EV(ARMV8, EVENT_22H) \ __PMC_EV(ARMV8, EVENT_23H) \ __PMC_EV(ARMV8, EVENT_24H) \ __PMC_EV(ARMV8, EVENT_25H) \ __PMC_EV(ARMV8, EVENT_26H) \ __PMC_EV(ARMV8, EVENT_27H) \ __PMC_EV(ARMV8, EVENT_28H) \ __PMC_EV(ARMV8, EVENT_29H) \ __PMC_EV(ARMV8, EVENT_2AH) \ __PMC_EV(ARMV8, EVENT_2BH) \ __PMC_EV(ARMV8, EVENT_2CH) \ __PMC_EV(ARMV8, EVENT_2DH) \ __PMC_EV(ARMV8, EVENT_2EH) \ __PMC_EV(ARMV8, EVENT_2FH) \ __PMC_EV(ARMV8, EVENT_30H) \ __PMC_EV(ARMV8, EVENT_31H) \ __PMC_EV(ARMV8, EVENT_32H) \ __PMC_EV(ARMV8, EVENT_33H) \ __PMC_EV(ARMV8, EVENT_34H) \ __PMC_EV(ARMV8, EVENT_35H) \ __PMC_EV(ARMV8, EVENT_36H) \ __PMC_EV(ARMV8, EVENT_37H) \ __PMC_EV(ARMV8, EVENT_38H) \ __PMC_EV(ARMV8, EVENT_39H) \ __PMC_EV(ARMV8, EVENT_3AH) \ __PMC_EV(ARMV8, EVENT_3BH) \ __PMC_EV(ARMV8, EVENT_3CH) \ __PMC_EV(ARMV8, EVENT_3DH) \ __PMC_EV(ARMV8, EVENT_3EH) \ __PMC_EV(ARMV8, EVENT_3FH) \ __PMC_EV(ARMV8, EVENT_40H) \ __PMC_EV(ARMV8, EVENT_41H) \ __PMC_EV(ARMV8, EVENT_42H) \ __PMC_EV(ARMV8, EVENT_43H) \ __PMC_EV(ARMV8, EVENT_44H) \ __PMC_EV(ARMV8, EVENT_45H) \ __PMC_EV(ARMV8, EVENT_46H) \ __PMC_EV(ARMV8, EVENT_47H) \ __PMC_EV(ARMV8, EVENT_48H) \ __PMC_EV(ARMV8, EVENT_49H) \ __PMC_EV(ARMV8, EVENT_4AH) \ __PMC_EV(ARMV8, EVENT_4BH) \ __PMC_EV(ARMV8, EVENT_4CH) \ __PMC_EV(ARMV8, EVENT_4DH) \ __PMC_EV(ARMV8, EVENT_4EH) \ __PMC_EV(ARMV8, EVENT_4FH) \ __PMC_EV(ARMV8, EVENT_50H) \ __PMC_EV(ARMV8, EVENT_51H) \ __PMC_EV(ARMV8, EVENT_52H) \ __PMC_EV(ARMV8, EVENT_53H) \ __PMC_EV(ARMV8, EVENT_54H) \ __PMC_EV(ARMV8, EVENT_55H) \ __PMC_EV(ARMV8, EVENT_56H) \ __PMC_EV(ARMV8, EVENT_57H) \ __PMC_EV(ARMV8, EVENT_58H) \ __PMC_EV(ARMV8, EVENT_59H) \ __PMC_EV(ARMV8, EVENT_5AH) \ __PMC_EV(ARMV8, EVENT_5BH) \ __PMC_EV(ARMV8, EVENT_5CH) \ __PMC_EV(ARMV8, EVENT_5DH) \ __PMC_EV(ARMV8, EVENT_5EH) \ __PMC_EV(ARMV8, EVENT_5FH) \ __PMC_EV(ARMV8, EVENT_60H) \ __PMC_EV(ARMV8, EVENT_61H) \ __PMC_EV(ARMV8, EVENT_62H) \ __PMC_EV(ARMV8, EVENT_63H) \ __PMC_EV(ARMV8, EVENT_64H) \ __PMC_EV(ARMV8, EVENT_65H) \ __PMC_EV(ARMV8, EVENT_66H) \ __PMC_EV(ARMV8, EVENT_67H) \ __PMC_EV(ARMV8, EVENT_68H) \ __PMC_EV(ARMV8, EVENT_69H) \ __PMC_EV(ARMV8, EVENT_6AH) \ __PMC_EV(ARMV8, EVENT_6BH) \ __PMC_EV(ARMV8, EVENT_6CH) \ __PMC_EV(ARMV8, EVENT_6DH) \ __PMC_EV(ARMV8, EVENT_6EH) \ __PMC_EV(ARMV8, EVENT_6FH) \ __PMC_EV(ARMV8, EVENT_70H) \ __PMC_EV(ARMV8, EVENT_71H) \ __PMC_EV(ARMV8, EVENT_72H) \ __PMC_EV(ARMV8, EVENT_73H) \ __PMC_EV(ARMV8, EVENT_74H) \ __PMC_EV(ARMV8, EVENT_75H) \ __PMC_EV(ARMV8, EVENT_76H) \ __PMC_EV(ARMV8, EVENT_77H) \ __PMC_EV(ARMV8, EVENT_78H) \ __PMC_EV(ARMV8, EVENT_79H) \ __PMC_EV(ARMV8, EVENT_7AH) \ __PMC_EV(ARMV8, EVENT_7BH) \ __PMC_EV(ARMV8, EVENT_7CH) \ __PMC_EV(ARMV8, EVENT_7DH) \ __PMC_EV(ARMV8, EVENT_7EH) \ __PMC_EV(ARMV8, EVENT_7FH) \ __PMC_EV(ARMV8, EVENT_80H) \ __PMC_EV(ARMV8, EVENT_81H) \ __PMC_EV(ARMV8, EVENT_82H) \ __PMC_EV(ARMV8, EVENT_83H) \ __PMC_EV(ARMV8, EVENT_84H) \ __PMC_EV(ARMV8, EVENT_85H) \ __PMC_EV(ARMV8, EVENT_86H) \ __PMC_EV(ARMV8, EVENT_87H) \ __PMC_EV(ARMV8, EVENT_88H) \ __PMC_EV(ARMV8, EVENT_89H) \ __PMC_EV(ARMV8, EVENT_8AH) \ __PMC_EV(ARMV8, EVENT_8BH) \ __PMC_EV(ARMV8, EVENT_8CH) \ __PMC_EV(ARMV8, EVENT_8DH) \ __PMC_EV(ARMV8, EVENT_8EH) \ __PMC_EV(ARMV8, EVENT_8FH) \ __PMC_EV(ARMV8, EVENT_90H) \ __PMC_EV(ARMV8, EVENT_91H) \ __PMC_EV(ARMV8, EVENT_92H) \ __PMC_EV(ARMV8, EVENT_93H) \ __PMC_EV(ARMV8, EVENT_94H) \ __PMC_EV(ARMV8, EVENT_95H) \ __PMC_EV(ARMV8, EVENT_96H) \ __PMC_EV(ARMV8, EVENT_97H) \ __PMC_EV(ARMV8, EVENT_98H) \ __PMC_EV(ARMV8, EVENT_99H) \ __PMC_EV(ARMV8, EVENT_9AH) \ __PMC_EV(ARMV8, EVENT_9BH) \ __PMC_EV(ARMV8, EVENT_9CH) \ __PMC_EV(ARMV8, EVENT_9DH) \ __PMC_EV(ARMV8, EVENT_9EH) \ __PMC_EV(ARMV8, EVENT_9FH) \ __PMC_EV(ARMV8, EVENT_A0H) \ __PMC_EV(ARMV8, EVENT_A1H) \ __PMC_EV(ARMV8, EVENT_A2H) \ __PMC_EV(ARMV8, EVENT_A3H) \ __PMC_EV(ARMV8, EVENT_A4H) \ __PMC_EV(ARMV8, EVENT_A5H) \ __PMC_EV(ARMV8, EVENT_A6H) \ __PMC_EV(ARMV8, EVENT_A7H) \ __PMC_EV(ARMV8, EVENT_A8H) \ __PMC_EV(ARMV8, EVENT_A9H) \ __PMC_EV(ARMV8, EVENT_AAH) \ __PMC_EV(ARMV8, EVENT_ABH) \ __PMC_EV(ARMV8, EVENT_ACH) \ __PMC_EV(ARMV8, EVENT_ADH) \ __PMC_EV(ARMV8, EVENT_AEH) \ __PMC_EV(ARMV8, EVENT_AFH) \ __PMC_EV(ARMV8, EVENT_B0H) \ __PMC_EV(ARMV8, EVENT_B1H) \ __PMC_EV(ARMV8, EVENT_B2H) \ __PMC_EV(ARMV8, EVENT_B3H) \ __PMC_EV(ARMV8, EVENT_B4H) \ __PMC_EV(ARMV8, EVENT_B5H) \ __PMC_EV(ARMV8, EVENT_B6H) \ __PMC_EV(ARMV8, EVENT_B7H) \ __PMC_EV(ARMV8, EVENT_B8H) \ __PMC_EV(ARMV8, EVENT_B9H) \ __PMC_EV(ARMV8, EVENT_BAH) \ __PMC_EV(ARMV8, EVENT_BBH) \ __PMC_EV(ARMV8, EVENT_BCH) \ __PMC_EV(ARMV8, EVENT_BDH) \ __PMC_EV(ARMV8, EVENT_BEH) \ __PMC_EV(ARMV8, EVENT_BFH) \ __PMC_EV(ARMV8, EVENT_C0H) \ __PMC_EV(ARMV8, EVENT_C1H) \ __PMC_EV(ARMV8, EVENT_C2H) \ __PMC_EV(ARMV8, EVENT_C3H) \ __PMC_EV(ARMV8, EVENT_C4H) \ __PMC_EV(ARMV8, EVENT_C5H) \ __PMC_EV(ARMV8, EVENT_C6H) \ __PMC_EV(ARMV8, EVENT_C7H) \ __PMC_EV(ARMV8, EVENT_C8H) \ __PMC_EV(ARMV8, EVENT_C9H) \ __PMC_EV(ARMV8, EVENT_CAH) \ __PMC_EV(ARMV8, EVENT_CBH) \ __PMC_EV(ARMV8, EVENT_CCH) \ __PMC_EV(ARMV8, EVENT_CDH) \ __PMC_EV(ARMV8, EVENT_CEH) \ __PMC_EV(ARMV8, EVENT_CFH) \ __PMC_EV(ARMV8, EVENT_D0H) \ __PMC_EV(ARMV8, EVENT_D1H) \ __PMC_EV(ARMV8, EVENT_D2H) \ __PMC_EV(ARMV8, EVENT_D3H) \ __PMC_EV(ARMV8, EVENT_D4H) \ __PMC_EV(ARMV8, EVENT_D5H) \ __PMC_EV(ARMV8, EVENT_D6H) \ __PMC_EV(ARMV8, EVENT_D7H) \ __PMC_EV(ARMV8, EVENT_D8H) \ __PMC_EV(ARMV8, EVENT_D9H) \ __PMC_EV(ARMV8, EVENT_DAH) \ __PMC_EV(ARMV8, EVENT_DBH) \ __PMC_EV(ARMV8, EVENT_DCH) \ __PMC_EV(ARMV8, EVENT_DDH) \ __PMC_EV(ARMV8, EVENT_DEH) \ __PMC_EV(ARMV8, EVENT_DFH) \ __PMC_EV(ARMV8, EVENT_E0H) \ __PMC_EV(ARMV8, EVENT_E1H) \ __PMC_EV(ARMV8, EVENT_E2H) \ __PMC_EV(ARMV8, EVENT_E3H) \ __PMC_EV(ARMV8, EVENT_E4H) \ __PMC_EV(ARMV8, EVENT_E5H) \ __PMC_EV(ARMV8, EVENT_E6H) \ __PMC_EV(ARMV8, EVENT_E7H) \ __PMC_EV(ARMV8, EVENT_E8H) \ __PMC_EV(ARMV8, EVENT_E9H) \ __PMC_EV(ARMV8, EVENT_EAH) \ __PMC_EV(ARMV8, EVENT_EBH) \ __PMC_EV(ARMV8, EVENT_ECH) \ __PMC_EV(ARMV8, EVENT_EDH) \ __PMC_EV(ARMV8, EVENT_EEH) \ __PMC_EV(ARMV8, EVENT_EFH) \ __PMC_EV(ARMV8, EVENT_F0H) \ __PMC_EV(ARMV8, EVENT_F1H) \ __PMC_EV(ARMV8, EVENT_F2H) \ __PMC_EV(ARMV8, EVENT_F3H) \ __PMC_EV(ARMV8, EVENT_F4H) \ __PMC_EV(ARMV8, EVENT_F5H) \ __PMC_EV(ARMV8, EVENT_F6H) \ __PMC_EV(ARMV8, EVENT_F7H) \ __PMC_EV(ARMV8, EVENT_F8H) \ __PMC_EV(ARMV8, EVENT_F9H) \ __PMC_EV(ARMV8, EVENT_FAH) \ __PMC_EV(ARMV8, EVENT_FBH) \ __PMC_EV(ARMV8, EVENT_FCH) \ __PMC_EV(ARMV8, EVENT_FDH) \ __PMC_EV(ARMV8, EVENT_FEH) \ __PMC_EV(ARMV8, EVENT_FFH) \ __PMC_EV(ARMV8, EVENT_100H) \ __PMC_EV(ARMV8, EVENT_101H) \ __PMC_EV(ARMV8, EVENT_102H) \ __PMC_EV(ARMV8, EVENT_103H) \ __PMC_EV(ARMV8, EVENT_104H) \ __PMC_EV(ARMV8, EVENT_105H) \ __PMC_EV(ARMV8, EVENT_106H) \ __PMC_EV(ARMV8, EVENT_107H) \ __PMC_EV(ARMV8, EVENT_108H) \ __PMC_EV(ARMV8, EVENT_109H) \ __PMC_EV(ARMV8, EVENT_10AH) \ __PMC_EV(ARMV8, EVENT_10BH) \ __PMC_EV(ARMV8, EVENT_10CH) \ __PMC_EV(ARMV8, EVENT_10DH) \ __PMC_EV(ARMV8, EVENT_10EH) \ __PMC_EV(ARMV8, EVENT_10FH) \ __PMC_EV(ARMV8, EVENT_110H) \ __PMC_EV(ARMV8, EVENT_111H) \ __PMC_EV(ARMV8, EVENT_112H) \ __PMC_EV(ARMV8, EVENT_113H) \ __PMC_EV(ARMV8, EVENT_114H) \ __PMC_EV(ARMV8, EVENT_115H) \ __PMC_EV(ARMV8, EVENT_116H) \ __PMC_EV(ARMV8, EVENT_117H) \ __PMC_EV(ARMV8, EVENT_118H) \ __PMC_EV(ARMV8, EVENT_119H) \ __PMC_EV(ARMV8, EVENT_11AH) \ __PMC_EV(ARMV8, EVENT_11BH) \ __PMC_EV(ARMV8, EVENT_11CH) \ __PMC_EV(ARMV8, EVENT_11DH) \ __PMC_EV(ARMV8, EVENT_11EH) \ __PMC_EV(ARMV8, EVENT_11FH) \ __PMC_EV(ARMV8, EVENT_120H) \ __PMC_EV(ARMV8, EVENT_121H) \ __PMC_EV(ARMV8, EVENT_122H) \ __PMC_EV(ARMV8, EVENT_123H) \ __PMC_EV(ARMV8, EVENT_124H) \ __PMC_EV(ARMV8, EVENT_125H) \ __PMC_EV(ARMV8, EVENT_126H) \ __PMC_EV(ARMV8, EVENT_127H) \ __PMC_EV(ARMV8, EVENT_128H) \ __PMC_EV(ARMV8, EVENT_129H) \ __PMC_EV(ARMV8, EVENT_12AH) \ __PMC_EV(ARMV8, EVENT_12BH) \ __PMC_EV(ARMV8, EVENT_12CH) \ __PMC_EV(ARMV8, EVENT_12DH) \ __PMC_EV(ARMV8, EVENT_12EH) \ __PMC_EV(ARMV8, EVENT_12FH) \ __PMC_EV(ARMV8, EVENT_130H) \ __PMC_EV(ARMV8, EVENT_131H) \ __PMC_EV(ARMV8, EVENT_132H) \ __PMC_EV(ARMV8, EVENT_133H) \ __PMC_EV(ARMV8, EVENT_134H) \ __PMC_EV(ARMV8, EVENT_135H) \ __PMC_EV(ARMV8, EVENT_136H) \ __PMC_EV(ARMV8, EVENT_137H) \ __PMC_EV(ARMV8, EVENT_138H) \ __PMC_EV(ARMV8, EVENT_139H) \ __PMC_EV(ARMV8, EVENT_13AH) \ __PMC_EV(ARMV8, EVENT_13BH) \ __PMC_EV(ARMV8, EVENT_13CH) \ __PMC_EV(ARMV8, EVENT_13DH) \ __PMC_EV(ARMV8, EVENT_13EH) \ __PMC_EV(ARMV8, EVENT_13FH) \ __PMC_EV(ARMV8, EVENT_140H) \ __PMC_EV(ARMV8, EVENT_141H) \ __PMC_EV(ARMV8, EVENT_142H) \ __PMC_EV(ARMV8, EVENT_143H) \ __PMC_EV(ARMV8, EVENT_144H) \ __PMC_EV(ARMV8, EVENT_145H) \ __PMC_EV(ARMV8, EVENT_146H) \ __PMC_EV(ARMV8, EVENT_147H) \ __PMC_EV(ARMV8, EVENT_148H) \ __PMC_EV(ARMV8, EVENT_149H) \ __PMC_EV(ARMV8, EVENT_14AH) \ __PMC_EV(ARMV8, EVENT_14BH) \ __PMC_EV(ARMV8, EVENT_14CH) \ __PMC_EV(ARMV8, EVENT_14DH) \ __PMC_EV(ARMV8, EVENT_14EH) \ __PMC_EV(ARMV8, EVENT_14FH) \ __PMC_EV(ARMV8, EVENT_150H) \ __PMC_EV(ARMV8, EVENT_151H) \ __PMC_EV(ARMV8, EVENT_152H) \ __PMC_EV(ARMV8, EVENT_153H) \ __PMC_EV(ARMV8, EVENT_154H) \ __PMC_EV(ARMV8, EVENT_155H) \ __PMC_EV(ARMV8, EVENT_156H) \ __PMC_EV(ARMV8, EVENT_157H) \ __PMC_EV(ARMV8, EVENT_158H) \ __PMC_EV(ARMV8, EVENT_159H) \ __PMC_EV(ARMV8, EVENT_15AH) \ __PMC_EV(ARMV8, EVENT_15BH) \ __PMC_EV(ARMV8, EVENT_15CH) \ __PMC_EV(ARMV8, EVENT_15DH) \ __PMC_EV(ARMV8, EVENT_15EH) \ __PMC_EV(ARMV8, EVENT_15FH) \ __PMC_EV(ARMV8, EVENT_160H) \ __PMC_EV(ARMV8, EVENT_161H) \ __PMC_EV(ARMV8, EVENT_162H) \ __PMC_EV(ARMV8, EVENT_163H) \ __PMC_EV(ARMV8, EVENT_164H) \ __PMC_EV(ARMV8, EVENT_165H) \ __PMC_EV(ARMV8, EVENT_166H) \ __PMC_EV(ARMV8, EVENT_167H) \ __PMC_EV(ARMV8, EVENT_168H) \ __PMC_EV(ARMV8, EVENT_169H) \ __PMC_EV(ARMV8, EVENT_16AH) \ __PMC_EV(ARMV8, EVENT_16BH) \ __PMC_EV(ARMV8, EVENT_16CH) \ __PMC_EV(ARMV8, EVENT_16DH) \ __PMC_EV(ARMV8, EVENT_16EH) \ __PMC_EV(ARMV8, EVENT_16FH) \ __PMC_EV(ARMV8, EVENT_170H) \ __PMC_EV(ARMV8, EVENT_171H) \ __PMC_EV(ARMV8, EVENT_172H) \ __PMC_EV(ARMV8, EVENT_173H) \ __PMC_EV(ARMV8, EVENT_174H) \ __PMC_EV(ARMV8, EVENT_175H) \ __PMC_EV(ARMV8, EVENT_176H) \ __PMC_EV(ARMV8, EVENT_177H) \ __PMC_EV(ARMV8, EVENT_178H) \ __PMC_EV(ARMV8, EVENT_179H) \ __PMC_EV(ARMV8, EVENT_17AH) \ __PMC_EV(ARMV8, EVENT_17BH) \ __PMC_EV(ARMV8, EVENT_17CH) \ __PMC_EV(ARMV8, EVENT_17DH) \ __PMC_EV(ARMV8, EVENT_17EH) \ __PMC_EV(ARMV8, EVENT_17FH) \ __PMC_EV(ARMV8, EVENT_180H) \ __PMC_EV(ARMV8, EVENT_181H) \ __PMC_EV(ARMV8, EVENT_182H) \ __PMC_EV(ARMV8, EVENT_183H) \ __PMC_EV(ARMV8, EVENT_184H) \ __PMC_EV(ARMV8, EVENT_185H) \ __PMC_EV(ARMV8, EVENT_186H) \ __PMC_EV(ARMV8, EVENT_187H) \ __PMC_EV(ARMV8, EVENT_188H) \ __PMC_EV(ARMV8, EVENT_189H) \ __PMC_EV(ARMV8, EVENT_18AH) \ __PMC_EV(ARMV8, EVENT_18BH) \ __PMC_EV(ARMV8, EVENT_18CH) \ __PMC_EV(ARMV8, EVENT_18DH) \ __PMC_EV(ARMV8, EVENT_18EH) \ __PMC_EV(ARMV8, EVENT_18FH) \ __PMC_EV(ARMV8, EVENT_190H) \ __PMC_EV(ARMV8, EVENT_191H) \ __PMC_EV(ARMV8, EVENT_192H) \ __PMC_EV(ARMV8, EVENT_193H) \ __PMC_EV(ARMV8, EVENT_194H) \ __PMC_EV(ARMV8, EVENT_195H) \ __PMC_EV(ARMV8, EVENT_196H) \ __PMC_EV(ARMV8, EVENT_197H) \ __PMC_EV(ARMV8, EVENT_198H) \ __PMC_EV(ARMV8, EVENT_199H) \ __PMC_EV(ARMV8, EVENT_19AH) \ __PMC_EV(ARMV8, EVENT_19BH) \ __PMC_EV(ARMV8, EVENT_19CH) \ __PMC_EV(ARMV8, EVENT_19DH) \ __PMC_EV(ARMV8, EVENT_19EH) \ __PMC_EV(ARMV8, EVENT_19FH) \ __PMC_EV(ARMV8, EVENT_1A0H) \ __PMC_EV(ARMV8, EVENT_1A1H) \ __PMC_EV(ARMV8, EVENT_1A2H) \ __PMC_EV(ARMV8, EVENT_1A3H) \ __PMC_EV(ARMV8, EVENT_1A4H) \ __PMC_EV(ARMV8, EVENT_1A5H) \ __PMC_EV(ARMV8, EVENT_1A6H) \ __PMC_EV(ARMV8, EVENT_1A7H) \ __PMC_EV(ARMV8, EVENT_1A8H) \ __PMC_EV(ARMV8, EVENT_1A9H) \ __PMC_EV(ARMV8, EVENT_1AAH) \ __PMC_EV(ARMV8, EVENT_1ABH) \ __PMC_EV(ARMV8, EVENT_1ACH) \ __PMC_EV(ARMV8, EVENT_1ADH) \ __PMC_EV(ARMV8, EVENT_1AEH) \ __PMC_EV(ARMV8, EVENT_1AFH) \ __PMC_EV(ARMV8, EVENT_1B0H) \ __PMC_EV(ARMV8, EVENT_1B1H) \ __PMC_EV(ARMV8, EVENT_1B2H) \ __PMC_EV(ARMV8, EVENT_1B3H) \ __PMC_EV(ARMV8, EVENT_1B4H) \ __PMC_EV(ARMV8, EVENT_1B5H) \ __PMC_EV(ARMV8, EVENT_1B6H) \ __PMC_EV(ARMV8, EVENT_1B7H) \ __PMC_EV(ARMV8, EVENT_1B8H) \ __PMC_EV(ARMV8, EVENT_1B9H) \ __PMC_EV(ARMV8, EVENT_1BAH) \ __PMC_EV(ARMV8, EVENT_1BBH) \ __PMC_EV(ARMV8, EVENT_1BCH) \ __PMC_EV(ARMV8, EVENT_1BDH) \ __PMC_EV(ARMV8, EVENT_1BEH) \ __PMC_EV(ARMV8, EVENT_1BFH) \ __PMC_EV(ARMV8, EVENT_1C0H) \ __PMC_EV(ARMV8, EVENT_1C1H) \ __PMC_EV(ARMV8, EVENT_1C2H) \ __PMC_EV(ARMV8, EVENT_1C3H) \ __PMC_EV(ARMV8, EVENT_1C4H) \ __PMC_EV(ARMV8, EVENT_1C5H) \ __PMC_EV(ARMV8, EVENT_1C6H) \ __PMC_EV(ARMV8, EVENT_1C7H) \ __PMC_EV(ARMV8, EVENT_1C8H) \ __PMC_EV(ARMV8, EVENT_1C9H) \ __PMC_EV(ARMV8, EVENT_1CAH) \ __PMC_EV(ARMV8, EVENT_1CBH) \ __PMC_EV(ARMV8, EVENT_1CCH) \ __PMC_EV(ARMV8, EVENT_1CDH) \ __PMC_EV(ARMV8, EVENT_1CEH) \ __PMC_EV(ARMV8, EVENT_1CFH) \ __PMC_EV(ARMV8, EVENT_1D0H) \ __PMC_EV(ARMV8, EVENT_1D1H) \ __PMC_EV(ARMV8, EVENT_1D2H) \ __PMC_EV(ARMV8, EVENT_1D3H) \ __PMC_EV(ARMV8, EVENT_1D4H) \ __PMC_EV(ARMV8, EVENT_1D5H) \ __PMC_EV(ARMV8, EVENT_1D6H) \ __PMC_EV(ARMV8, EVENT_1D7H) \ __PMC_EV(ARMV8, EVENT_1D8H) \ __PMC_EV(ARMV8, EVENT_1D9H) \ __PMC_EV(ARMV8, EVENT_1DAH) \ __PMC_EV(ARMV8, EVENT_1DBH) \ __PMC_EV(ARMV8, EVENT_1DCH) \ __PMC_EV(ARMV8, EVENT_1DDH) \ __PMC_EV(ARMV8, EVENT_1DEH) \ __PMC_EV(ARMV8, EVENT_1DFH) \ __PMC_EV(ARMV8, EVENT_1E0H) \ __PMC_EV(ARMV8, EVENT_1E1H) \ __PMC_EV(ARMV8, EVENT_1E2H) \ __PMC_EV(ARMV8, EVENT_1E3H) \ __PMC_EV(ARMV8, EVENT_1E4H) \ __PMC_EV(ARMV8, EVENT_1E5H) \ __PMC_EV(ARMV8, EVENT_1E6H) \ __PMC_EV(ARMV8, EVENT_1E7H) \ __PMC_EV(ARMV8, EVENT_1E8H) \ __PMC_EV(ARMV8, EVENT_1E9H) \ __PMC_EV(ARMV8, EVENT_1EAH) \ __PMC_EV(ARMV8, EVENT_1EBH) \ __PMC_EV(ARMV8, EVENT_1ECH) \ __PMC_EV(ARMV8, EVENT_1EDH) \ __PMC_EV(ARMV8, EVENT_1EEH) \ __PMC_EV(ARMV8, EVENT_1EFH) \ __PMC_EV(ARMV8, EVENT_1F0H) \ __PMC_EV(ARMV8, EVENT_1F1H) \ __PMC_EV(ARMV8, EVENT_1F2H) \ __PMC_EV(ARMV8, EVENT_1F3H) \ __PMC_EV(ARMV8, EVENT_1F4H) \ __PMC_EV(ARMV8, EVENT_1F5H) \ __PMC_EV(ARMV8, EVENT_1F6H) \ __PMC_EV(ARMV8, EVENT_1F7H) \ __PMC_EV(ARMV8, EVENT_1F8H) \ __PMC_EV(ARMV8, EVENT_1F9H) \ __PMC_EV(ARMV8, EVENT_1FAH) \ __PMC_EV(ARMV8, EVENT_1FBH) \ __PMC_EV(ARMV8, EVENT_1FCH) \ __PMC_EV(ARMV8, EVENT_1FDH) \ __PMC_EV(ARMV8, EVENT_1FEH) \ __PMC_EV(ARMV8, EVENT_1FFH) \ __PMC_EV(ARMV8, EVENT_200H) \ __PMC_EV(ARMV8, EVENT_201H) \ __PMC_EV(ARMV8, EVENT_202H) \ __PMC_EV(ARMV8, EVENT_203H) \ __PMC_EV(ARMV8, EVENT_204H) \ __PMC_EV(ARMV8, EVENT_205H) \ __PMC_EV(ARMV8, EVENT_206H) \ __PMC_EV(ARMV8, EVENT_207H) \ __PMC_EV(ARMV8, EVENT_208H) \ __PMC_EV(ARMV8, EVENT_209H) \ __PMC_EV(ARMV8, EVENT_20AH) \ __PMC_EV(ARMV8, EVENT_20BH) \ __PMC_EV(ARMV8, EVENT_20CH) \ __PMC_EV(ARMV8, EVENT_20DH) \ __PMC_EV(ARMV8, EVENT_20EH) \ __PMC_EV(ARMV8, EVENT_20FH) \ __PMC_EV(ARMV8, EVENT_210H) \ __PMC_EV(ARMV8, EVENT_211H) \ __PMC_EV(ARMV8, EVENT_212H) \ __PMC_EV(ARMV8, EVENT_213H) \ __PMC_EV(ARMV8, EVENT_214H) \ __PMC_EV(ARMV8, EVENT_215H) \ __PMC_EV(ARMV8, EVENT_216H) \ __PMC_EV(ARMV8, EVENT_217H) \ __PMC_EV(ARMV8, EVENT_218H) \ __PMC_EV(ARMV8, EVENT_219H) \ __PMC_EV(ARMV8, EVENT_21AH) \ __PMC_EV(ARMV8, EVENT_21BH) \ __PMC_EV(ARMV8, EVENT_21CH) \ __PMC_EV(ARMV8, EVENT_21DH) \ __PMC_EV(ARMV8, EVENT_21EH) \ __PMC_EV(ARMV8, EVENT_21FH) \ __PMC_EV(ARMV8, EVENT_220H) \ __PMC_EV(ARMV8, EVENT_221H) \ __PMC_EV(ARMV8, EVENT_222H) \ __PMC_EV(ARMV8, EVENT_223H) \ __PMC_EV(ARMV8, EVENT_224H) \ __PMC_EV(ARMV8, EVENT_225H) \ __PMC_EV(ARMV8, EVENT_226H) \ __PMC_EV(ARMV8, EVENT_227H) \ __PMC_EV(ARMV8, EVENT_228H) \ __PMC_EV(ARMV8, EVENT_229H) \ __PMC_EV(ARMV8, EVENT_22AH) \ __PMC_EV(ARMV8, EVENT_22BH) \ __PMC_EV(ARMV8, EVENT_22CH) \ __PMC_EV(ARMV8, EVENT_22DH) \ __PMC_EV(ARMV8, EVENT_22EH) \ __PMC_EV(ARMV8, EVENT_22FH) \ __PMC_EV(ARMV8, EVENT_230H) \ __PMC_EV(ARMV8, EVENT_231H) \ __PMC_EV(ARMV8, EVENT_232H) \ __PMC_EV(ARMV8, EVENT_233H) \ __PMC_EV(ARMV8, EVENT_234H) \ __PMC_EV(ARMV8, EVENT_235H) \ __PMC_EV(ARMV8, EVENT_236H) \ __PMC_EV(ARMV8, EVENT_237H) \ __PMC_EV(ARMV8, EVENT_238H) \ __PMC_EV(ARMV8, EVENT_239H) \ __PMC_EV(ARMV8, EVENT_23AH) \ __PMC_EV(ARMV8, EVENT_23BH) \ __PMC_EV(ARMV8, EVENT_23CH) \ __PMC_EV(ARMV8, EVENT_23DH) \ __PMC_EV(ARMV8, EVENT_23EH) \ __PMC_EV(ARMV8, EVENT_23FH) \ __PMC_EV(ARMV8, EVENT_240H) \ __PMC_EV(ARMV8, EVENT_241H) \ __PMC_EV(ARMV8, EVENT_242H) \ __PMC_EV(ARMV8, EVENT_243H) \ __PMC_EV(ARMV8, EVENT_244H) \ __PMC_EV(ARMV8, EVENT_245H) \ __PMC_EV(ARMV8, EVENT_246H) \ __PMC_EV(ARMV8, EVENT_247H) \ __PMC_EV(ARMV8, EVENT_248H) \ __PMC_EV(ARMV8, EVENT_249H) \ __PMC_EV(ARMV8, EVENT_24AH) \ __PMC_EV(ARMV8, EVENT_24BH) \ __PMC_EV(ARMV8, EVENT_24CH) \ __PMC_EV(ARMV8, EVENT_24DH) \ __PMC_EV(ARMV8, EVENT_24EH) \ __PMC_EV(ARMV8, EVENT_24FH) \ __PMC_EV(ARMV8, EVENT_250H) \ __PMC_EV(ARMV8, EVENT_251H) \ __PMC_EV(ARMV8, EVENT_252H) \ __PMC_EV(ARMV8, EVENT_253H) \ __PMC_EV(ARMV8, EVENT_254H) \ __PMC_EV(ARMV8, EVENT_255H) \ __PMC_EV(ARMV8, EVENT_256H) \ __PMC_EV(ARMV8, EVENT_257H) \ __PMC_EV(ARMV8, EVENT_258H) \ __PMC_EV(ARMV8, EVENT_259H) \ __PMC_EV(ARMV8, EVENT_25AH) \ __PMC_EV(ARMV8, EVENT_25BH) \ __PMC_EV(ARMV8, EVENT_25CH) \ __PMC_EV(ARMV8, EVENT_25DH) \ __PMC_EV(ARMV8, EVENT_25EH) \ __PMC_EV(ARMV8, EVENT_25FH) \ __PMC_EV(ARMV8, EVENT_260H) \ __PMC_EV(ARMV8, EVENT_261H) \ __PMC_EV(ARMV8, EVENT_262H) \ __PMC_EV(ARMV8, EVENT_263H) \ __PMC_EV(ARMV8, EVENT_264H) \ __PMC_EV(ARMV8, EVENT_265H) \ __PMC_EV(ARMV8, EVENT_266H) \ __PMC_EV(ARMV8, EVENT_267H) \ __PMC_EV(ARMV8, EVENT_268H) \ __PMC_EV(ARMV8, EVENT_269H) \ __PMC_EV(ARMV8, EVENT_26AH) \ __PMC_EV(ARMV8, EVENT_26BH) \ __PMC_EV(ARMV8, EVENT_26CH) \ __PMC_EV(ARMV8, EVENT_26DH) \ __PMC_EV(ARMV8, EVENT_26EH) \ __PMC_EV(ARMV8, EVENT_26FH) \ __PMC_EV(ARMV8, EVENT_270H) \ __PMC_EV(ARMV8, EVENT_271H) \ __PMC_EV(ARMV8, EVENT_272H) \ __PMC_EV(ARMV8, EVENT_273H) \ __PMC_EV(ARMV8, EVENT_274H) \ __PMC_EV(ARMV8, EVENT_275H) \ __PMC_EV(ARMV8, EVENT_276H) \ __PMC_EV(ARMV8, EVENT_277H) \ __PMC_EV(ARMV8, EVENT_278H) \ __PMC_EV(ARMV8, EVENT_279H) \ __PMC_EV(ARMV8, EVENT_27AH) \ __PMC_EV(ARMV8, EVENT_27BH) \ __PMC_EV(ARMV8, EVENT_27CH) \ __PMC_EV(ARMV8, EVENT_27DH) \ __PMC_EV(ARMV8, EVENT_27EH) \ __PMC_EV(ARMV8, EVENT_27FH) \ __PMC_EV(ARMV8, EVENT_280H) \ __PMC_EV(ARMV8, EVENT_281H) \ __PMC_EV(ARMV8, EVENT_282H) \ __PMC_EV(ARMV8, EVENT_283H) \ __PMC_EV(ARMV8, EVENT_284H) \ __PMC_EV(ARMV8, EVENT_285H) \ __PMC_EV(ARMV8, EVENT_286H) \ __PMC_EV(ARMV8, EVENT_287H) \ __PMC_EV(ARMV8, EVENT_288H) \ __PMC_EV(ARMV8, EVENT_289H) \ __PMC_EV(ARMV8, EVENT_28AH) \ __PMC_EV(ARMV8, EVENT_28BH) \ __PMC_EV(ARMV8, EVENT_28CH) \ __PMC_EV(ARMV8, EVENT_28DH) \ __PMC_EV(ARMV8, EVENT_28EH) \ __PMC_EV(ARMV8, EVENT_28FH) \ __PMC_EV(ARMV8, EVENT_290H) \ __PMC_EV(ARMV8, EVENT_291H) \ __PMC_EV(ARMV8, EVENT_292H) \ __PMC_EV(ARMV8, EVENT_293H) \ __PMC_EV(ARMV8, EVENT_294H) \ __PMC_EV(ARMV8, EVENT_295H) \ __PMC_EV(ARMV8, EVENT_296H) \ __PMC_EV(ARMV8, EVENT_297H) \ __PMC_EV(ARMV8, EVENT_298H) \ __PMC_EV(ARMV8, EVENT_299H) \ __PMC_EV(ARMV8, EVENT_29AH) \ __PMC_EV(ARMV8, EVENT_29BH) \ __PMC_EV(ARMV8, EVENT_29CH) \ __PMC_EV(ARMV8, EVENT_29DH) \ __PMC_EV(ARMV8, EVENT_29EH) \ __PMC_EV(ARMV8, EVENT_29FH) \ __PMC_EV(ARMV8, EVENT_2A0H) \ __PMC_EV(ARMV8, EVENT_2A1H) \ __PMC_EV(ARMV8, EVENT_2A2H) \ __PMC_EV(ARMV8, EVENT_2A3H) \ __PMC_EV(ARMV8, EVENT_2A4H) \ __PMC_EV(ARMV8, EVENT_2A5H) \ __PMC_EV(ARMV8, EVENT_2A6H) \ __PMC_EV(ARMV8, EVENT_2A7H) \ __PMC_EV(ARMV8, EVENT_2A8H) \ __PMC_EV(ARMV8, EVENT_2A9H) \ __PMC_EV(ARMV8, EVENT_2AAH) \ __PMC_EV(ARMV8, EVENT_2ABH) \ __PMC_EV(ARMV8, EVENT_2ACH) \ __PMC_EV(ARMV8, EVENT_2ADH) \ __PMC_EV(ARMV8, EVENT_2AEH) \ __PMC_EV(ARMV8, EVENT_2AFH) \ __PMC_EV(ARMV8, EVENT_2B0H) \ __PMC_EV(ARMV8, EVENT_2B1H) \ __PMC_EV(ARMV8, EVENT_2B2H) \ __PMC_EV(ARMV8, EVENT_2B3H) \ __PMC_EV(ARMV8, EVENT_2B4H) \ __PMC_EV(ARMV8, EVENT_2B5H) \ __PMC_EV(ARMV8, EVENT_2B6H) \ __PMC_EV(ARMV8, EVENT_2B7H) \ __PMC_EV(ARMV8, EVENT_2B8H) \ __PMC_EV(ARMV8, EVENT_2B9H) \ __PMC_EV(ARMV8, EVENT_2BAH) \ __PMC_EV(ARMV8, EVENT_2BBH) \ __PMC_EV(ARMV8, EVENT_2BCH) \ __PMC_EV(ARMV8, EVENT_2BDH) \ __PMC_EV(ARMV8, EVENT_2BEH) \ __PMC_EV(ARMV8, EVENT_2BFH) \ __PMC_EV(ARMV8, EVENT_2C0H) \ __PMC_EV(ARMV8, EVENT_2C1H) \ __PMC_EV(ARMV8, EVENT_2C2H) \ __PMC_EV(ARMV8, EVENT_2C3H) \ __PMC_EV(ARMV8, EVENT_2C4H) \ __PMC_EV(ARMV8, EVENT_2C5H) \ __PMC_EV(ARMV8, EVENT_2C6H) \ __PMC_EV(ARMV8, EVENT_2C7H) \ __PMC_EV(ARMV8, EVENT_2C8H) \ __PMC_EV(ARMV8, EVENT_2C9H) \ __PMC_EV(ARMV8, EVENT_2CAH) \ __PMC_EV(ARMV8, EVENT_2CBH) \ __PMC_EV(ARMV8, EVENT_2CCH) \ __PMC_EV(ARMV8, EVENT_2CDH) \ __PMC_EV(ARMV8, EVENT_2CEH) \ __PMC_EV(ARMV8, EVENT_2CFH) \ __PMC_EV(ARMV8, EVENT_2D0H) \ __PMC_EV(ARMV8, EVENT_2D1H) \ __PMC_EV(ARMV8, EVENT_2D2H) \ __PMC_EV(ARMV8, EVENT_2D3H) \ __PMC_EV(ARMV8, EVENT_2D4H) \ __PMC_EV(ARMV8, EVENT_2D5H) \ __PMC_EV(ARMV8, EVENT_2D6H) \ __PMC_EV(ARMV8, EVENT_2D7H) \ __PMC_EV(ARMV8, EVENT_2D8H) \ __PMC_EV(ARMV8, EVENT_2D9H) \ __PMC_EV(ARMV8, EVENT_2DAH) \ __PMC_EV(ARMV8, EVENT_2DBH) \ __PMC_EV(ARMV8, EVENT_2DCH) \ __PMC_EV(ARMV8, EVENT_2DDH) \ __PMC_EV(ARMV8, EVENT_2DEH) \ __PMC_EV(ARMV8, EVENT_2DFH) \ __PMC_EV(ARMV8, EVENT_2E0H) \ __PMC_EV(ARMV8, EVENT_2E1H) \ __PMC_EV(ARMV8, EVENT_2E2H) \ __PMC_EV(ARMV8, EVENT_2E3H) \ __PMC_EV(ARMV8, EVENT_2E4H) \ __PMC_EV(ARMV8, EVENT_2E5H) \ __PMC_EV(ARMV8, EVENT_2E6H) \ __PMC_EV(ARMV8, EVENT_2E7H) \ __PMC_EV(ARMV8, EVENT_2E8H) \ __PMC_EV(ARMV8, EVENT_2E9H) \ __PMC_EV(ARMV8, EVENT_2EAH) \ __PMC_EV(ARMV8, EVENT_2EBH) \ __PMC_EV(ARMV8, EVENT_2ECH) \ __PMC_EV(ARMV8, EVENT_2EDH) \ __PMC_EV(ARMV8, EVENT_2EEH) \ __PMC_EV(ARMV8, EVENT_2EFH) \ __PMC_EV(ARMV8, EVENT_2F0H) \ __PMC_EV(ARMV8, EVENT_2F1H) \ __PMC_EV(ARMV8, EVENT_2F2H) \ __PMC_EV(ARMV8, EVENT_2F3H) \ __PMC_EV(ARMV8, EVENT_2F4H) \ __PMC_EV(ARMV8, EVENT_2F5H) \ __PMC_EV(ARMV8, EVENT_2F6H) \ __PMC_EV(ARMV8, EVENT_2F7H) \ __PMC_EV(ARMV8, EVENT_2F8H) \ __PMC_EV(ARMV8, EVENT_2F9H) \ __PMC_EV(ARMV8, EVENT_2FAH) \ __PMC_EV(ARMV8, EVENT_2FBH) \ __PMC_EV(ARMV8, EVENT_2FCH) \ __PMC_EV(ARMV8, EVENT_2FDH) \ __PMC_EV(ARMV8, EVENT_2FEH) \ __PMC_EV(ARMV8, EVENT_2FFH) \ __PMC_EV(ARMV8, EVENT_300H) \ __PMC_EV(ARMV8, EVENT_301H) \ __PMC_EV(ARMV8, EVENT_302H) \ __PMC_EV(ARMV8, EVENT_303H) \ __PMC_EV(ARMV8, EVENT_304H) \ __PMC_EV(ARMV8, EVENT_305H) \ __PMC_EV(ARMV8, EVENT_306H) \ __PMC_EV(ARMV8, EVENT_307H) \ __PMC_EV(ARMV8, EVENT_308H) \ __PMC_EV(ARMV8, EVENT_309H) \ __PMC_EV(ARMV8, EVENT_30AH) \ __PMC_EV(ARMV8, EVENT_30BH) \ __PMC_EV(ARMV8, EVENT_30CH) \ __PMC_EV(ARMV8, EVENT_30DH) \ __PMC_EV(ARMV8, EVENT_30EH) \ __PMC_EV(ARMV8, EVENT_30FH) \ __PMC_EV(ARMV8, EVENT_310H) \ __PMC_EV(ARMV8, EVENT_311H) \ __PMC_EV(ARMV8, EVENT_312H) \ __PMC_EV(ARMV8, EVENT_313H) \ __PMC_EV(ARMV8, EVENT_314H) \ __PMC_EV(ARMV8, EVENT_315H) \ __PMC_EV(ARMV8, EVENT_316H) \ __PMC_EV(ARMV8, EVENT_317H) \ __PMC_EV(ARMV8, EVENT_318H) \ __PMC_EV(ARMV8, EVENT_319H) \ __PMC_EV(ARMV8, EVENT_31AH) \ __PMC_EV(ARMV8, EVENT_31BH) \ __PMC_EV(ARMV8, EVENT_31CH) \ __PMC_EV(ARMV8, EVENT_31DH) \ __PMC_EV(ARMV8, EVENT_31EH) \ __PMC_EV(ARMV8, EVENT_31FH) \ __PMC_EV(ARMV8, EVENT_320H) \ __PMC_EV(ARMV8, EVENT_321H) \ __PMC_EV(ARMV8, EVENT_322H) \ __PMC_EV(ARMV8, EVENT_323H) \ __PMC_EV(ARMV8, EVENT_324H) \ __PMC_EV(ARMV8, EVENT_325H) \ __PMC_EV(ARMV8, EVENT_326H) \ __PMC_EV(ARMV8, EVENT_327H) \ __PMC_EV(ARMV8, EVENT_328H) \ __PMC_EV(ARMV8, EVENT_329H) \ __PMC_EV(ARMV8, EVENT_32AH) \ __PMC_EV(ARMV8, EVENT_32BH) \ __PMC_EV(ARMV8, EVENT_32CH) \ __PMC_EV(ARMV8, EVENT_32DH) \ __PMC_EV(ARMV8, EVENT_32EH) \ __PMC_EV(ARMV8, EVENT_32FH) \ __PMC_EV(ARMV8, EVENT_330H) \ __PMC_EV(ARMV8, EVENT_331H) \ __PMC_EV(ARMV8, EVENT_332H) \ __PMC_EV(ARMV8, EVENT_333H) \ __PMC_EV(ARMV8, EVENT_334H) \ __PMC_EV(ARMV8, EVENT_335H) \ __PMC_EV(ARMV8, EVENT_336H) \ __PMC_EV(ARMV8, EVENT_337H) \ __PMC_EV(ARMV8, EVENT_338H) \ __PMC_EV(ARMV8, EVENT_339H) \ __PMC_EV(ARMV8, EVENT_33AH) \ __PMC_EV(ARMV8, EVENT_33BH) \ __PMC_EV(ARMV8, EVENT_33CH) \ __PMC_EV(ARMV8, EVENT_33DH) \ __PMC_EV(ARMV8, EVENT_33EH) \ __PMC_EV(ARMV8, EVENT_33FH) \ __PMC_EV(ARMV8, EVENT_340H) \ __PMC_EV(ARMV8, EVENT_341H) \ __PMC_EV(ARMV8, EVENT_342H) \ __PMC_EV(ARMV8, EVENT_343H) \ __PMC_EV(ARMV8, EVENT_344H) \ __PMC_EV(ARMV8, EVENT_345H) \ __PMC_EV(ARMV8, EVENT_346H) \ __PMC_EV(ARMV8, EVENT_347H) \ __PMC_EV(ARMV8, EVENT_348H) \ __PMC_EV(ARMV8, EVENT_349H) \ __PMC_EV(ARMV8, EVENT_34AH) \ __PMC_EV(ARMV8, EVENT_34BH) \ __PMC_EV(ARMV8, EVENT_34CH) \ __PMC_EV(ARMV8, EVENT_34DH) \ __PMC_EV(ARMV8, EVENT_34EH) \ __PMC_EV(ARMV8, EVENT_34FH) \ __PMC_EV(ARMV8, EVENT_350H) \ __PMC_EV(ARMV8, EVENT_351H) \ __PMC_EV(ARMV8, EVENT_352H) \ __PMC_EV(ARMV8, EVENT_353H) \ __PMC_EV(ARMV8, EVENT_354H) \ __PMC_EV(ARMV8, EVENT_355H) \ __PMC_EV(ARMV8, EVENT_356H) \ __PMC_EV(ARMV8, EVENT_357H) \ __PMC_EV(ARMV8, EVENT_358H) \ __PMC_EV(ARMV8, EVENT_359H) \ __PMC_EV(ARMV8, EVENT_35AH) \ __PMC_EV(ARMV8, EVENT_35BH) \ __PMC_EV(ARMV8, EVENT_35CH) \ __PMC_EV(ARMV8, EVENT_35DH) \ __PMC_EV(ARMV8, EVENT_35EH) \ __PMC_EV(ARMV8, EVENT_35FH) \ __PMC_EV(ARMV8, EVENT_360H) \ __PMC_EV(ARMV8, EVENT_361H) \ __PMC_EV(ARMV8, EVENT_362H) \ __PMC_EV(ARMV8, EVENT_363H) \ __PMC_EV(ARMV8, EVENT_364H) \ __PMC_EV(ARMV8, EVENT_365H) \ __PMC_EV(ARMV8, EVENT_366H) \ __PMC_EV(ARMV8, EVENT_367H) \ __PMC_EV(ARMV8, EVENT_368H) \ __PMC_EV(ARMV8, EVENT_369H) \ __PMC_EV(ARMV8, EVENT_36AH) \ __PMC_EV(ARMV8, EVENT_36BH) \ __PMC_EV(ARMV8, EVENT_36CH) \ __PMC_EV(ARMV8, EVENT_36DH) \ __PMC_EV(ARMV8, EVENT_36EH) \ __PMC_EV(ARMV8, EVENT_36FH) \ __PMC_EV(ARMV8, EVENT_370H) \ __PMC_EV(ARMV8, EVENT_371H) \ __PMC_EV(ARMV8, EVENT_372H) \ __PMC_EV(ARMV8, EVENT_373H) \ __PMC_EV(ARMV8, EVENT_374H) \ __PMC_EV(ARMV8, EVENT_375H) \ __PMC_EV(ARMV8, EVENT_376H) \ __PMC_EV(ARMV8, EVENT_377H) \ __PMC_EV(ARMV8, EVENT_378H) \ __PMC_EV(ARMV8, EVENT_379H) \ __PMC_EV(ARMV8, EVENT_37AH) \ __PMC_EV(ARMV8, EVENT_37BH) \ __PMC_EV(ARMV8, EVENT_37CH) \ __PMC_EV(ARMV8, EVENT_37DH) \ __PMC_EV(ARMV8, EVENT_37EH) \ __PMC_EV(ARMV8, EVENT_37FH) \ __PMC_EV(ARMV8, EVENT_380H) \ __PMC_EV(ARMV8, EVENT_381H) \ __PMC_EV(ARMV8, EVENT_382H) \ __PMC_EV(ARMV8, EVENT_383H) \ __PMC_EV(ARMV8, EVENT_384H) \ __PMC_EV(ARMV8, EVENT_385H) \ __PMC_EV(ARMV8, EVENT_386H) \ __PMC_EV(ARMV8, EVENT_387H) \ __PMC_EV(ARMV8, EVENT_388H) \ __PMC_EV(ARMV8, EVENT_389H) \ __PMC_EV(ARMV8, EVENT_38AH) \ __PMC_EV(ARMV8, EVENT_38BH) \ __PMC_EV(ARMV8, EVENT_38CH) \ __PMC_EV(ARMV8, EVENT_38DH) \ __PMC_EV(ARMV8, EVENT_38EH) \ __PMC_EV(ARMV8, EVENT_38FH) \ __PMC_EV(ARMV8, EVENT_390H) \ __PMC_EV(ARMV8, EVENT_391H) \ __PMC_EV(ARMV8, EVENT_392H) \ __PMC_EV(ARMV8, EVENT_393H) \ __PMC_EV(ARMV8, EVENT_394H) \ __PMC_EV(ARMV8, EVENT_395H) \ __PMC_EV(ARMV8, EVENT_396H) \ __PMC_EV(ARMV8, EVENT_397H) \ __PMC_EV(ARMV8, EVENT_398H) \ __PMC_EV(ARMV8, EVENT_399H) \ __PMC_EV(ARMV8, EVENT_39AH) \ __PMC_EV(ARMV8, EVENT_39BH) \ __PMC_EV(ARMV8, EVENT_39CH) \ __PMC_EV(ARMV8, EVENT_39DH) \ __PMC_EV(ARMV8, EVENT_39EH) \ __PMC_EV(ARMV8, EVENT_39FH) \ __PMC_EV(ARMV8, EVENT_3A0H) \ __PMC_EV(ARMV8, EVENT_3A1H) \ __PMC_EV(ARMV8, EVENT_3A2H) \ __PMC_EV(ARMV8, EVENT_3A3H) \ __PMC_EV(ARMV8, EVENT_3A4H) \ __PMC_EV(ARMV8, EVENT_3A5H) \ __PMC_EV(ARMV8, EVENT_3A6H) \ __PMC_EV(ARMV8, EVENT_3A7H) \ __PMC_EV(ARMV8, EVENT_3A8H) \ __PMC_EV(ARMV8, EVENT_3A9H) \ __PMC_EV(ARMV8, EVENT_3AAH) \ __PMC_EV(ARMV8, EVENT_3ABH) \ __PMC_EV(ARMV8, EVENT_3ACH) \ __PMC_EV(ARMV8, EVENT_3ADH) \ __PMC_EV(ARMV8, EVENT_3AEH) \ __PMC_EV(ARMV8, EVENT_3AFH) \ __PMC_EV(ARMV8, EVENT_3B0H) \ __PMC_EV(ARMV8, EVENT_3B1H) \ __PMC_EV(ARMV8, EVENT_3B2H) \ __PMC_EV(ARMV8, EVENT_3B3H) \ __PMC_EV(ARMV8, EVENT_3B4H) \ __PMC_EV(ARMV8, EVENT_3B5H) \ __PMC_EV(ARMV8, EVENT_3B6H) \ __PMC_EV(ARMV8, EVENT_3B7H) \ __PMC_EV(ARMV8, EVENT_3B8H) \ __PMC_EV(ARMV8, EVENT_3B9H) \ __PMC_EV(ARMV8, EVENT_3BAH) \ __PMC_EV(ARMV8, EVENT_3BBH) \ __PMC_EV(ARMV8, EVENT_3BCH) \ __PMC_EV(ARMV8, EVENT_3BDH) \ __PMC_EV(ARMV8, EVENT_3BEH) \ __PMC_EV(ARMV8, EVENT_3BFH) \ __PMC_EV(ARMV8, EVENT_3C0H) \ __PMC_EV(ARMV8, EVENT_3C1H) \ __PMC_EV(ARMV8, EVENT_3C2H) \ __PMC_EV(ARMV8, EVENT_3C3H) \ __PMC_EV(ARMV8, EVENT_3C4H) \ __PMC_EV(ARMV8, EVENT_3C5H) \ __PMC_EV(ARMV8, EVENT_3C6H) \ __PMC_EV(ARMV8, EVENT_3C7H) \ __PMC_EV(ARMV8, EVENT_3C8H) \ __PMC_EV(ARMV8, EVENT_3C9H) \ __PMC_EV(ARMV8, EVENT_3CAH) \ __PMC_EV(ARMV8, EVENT_3CBH) \ __PMC_EV(ARMV8, EVENT_3CCH) \ __PMC_EV(ARMV8, EVENT_3CDH) \ __PMC_EV(ARMV8, EVENT_3CEH) \ __PMC_EV(ARMV8, EVENT_3CFH) \ __PMC_EV(ARMV8, EVENT_3D0H) \ __PMC_EV(ARMV8, EVENT_3D1H) \ __PMC_EV(ARMV8, EVENT_3D2H) \ __PMC_EV(ARMV8, EVENT_3D3H) \ __PMC_EV(ARMV8, EVENT_3D4H) \ __PMC_EV(ARMV8, EVENT_3D5H) \ __PMC_EV(ARMV8, EVENT_3D6H) \ __PMC_EV(ARMV8, EVENT_3D7H) \ __PMC_EV(ARMV8, EVENT_3D8H) \ __PMC_EV(ARMV8, EVENT_3D9H) \ __PMC_EV(ARMV8, EVENT_3DAH) \ __PMC_EV(ARMV8, EVENT_3DBH) \ __PMC_EV(ARMV8, EVENT_3DCH) \ __PMC_EV(ARMV8, EVENT_3DDH) \ __PMC_EV(ARMV8, EVENT_3DEH) \ __PMC_EV(ARMV8, EVENT_3DFH) \ __PMC_EV(ARMV8, EVENT_3E0H) \ __PMC_EV(ARMV8, EVENT_3E1H) \ __PMC_EV(ARMV8, EVENT_3E2H) \ __PMC_EV(ARMV8, EVENT_3E3H) \ __PMC_EV(ARMV8, EVENT_3E4H) \ __PMC_EV(ARMV8, EVENT_3E5H) \ __PMC_EV(ARMV8, EVENT_3E6H) \ __PMC_EV(ARMV8, EVENT_3E7H) \ __PMC_EV(ARMV8, EVENT_3E8H) \ __PMC_EV(ARMV8, EVENT_3E9H) \ __PMC_EV(ARMV8, EVENT_3EAH) \ __PMC_EV(ARMV8, EVENT_3EBH) \ __PMC_EV(ARMV8, EVENT_3ECH) \ __PMC_EV(ARMV8, EVENT_3EDH) \ __PMC_EV(ARMV8, EVENT_3EEH) \ __PMC_EV(ARMV8, EVENT_3EFH) \ __PMC_EV(ARMV8, EVENT_3F0H) \ __PMC_EV(ARMV8, EVENT_3F1H) \ __PMC_EV(ARMV8, EVENT_3F2H) \ __PMC_EV(ARMV8, EVENT_3F3H) \ __PMC_EV(ARMV8, EVENT_3F4H) \ __PMC_EV(ARMV8, EVENT_3F5H) \ __PMC_EV(ARMV8, EVENT_3F6H) \ __PMC_EV(ARMV8, EVENT_3F7H) \ __PMC_EV(ARMV8, EVENT_3F8H) \ __PMC_EV(ARMV8, EVENT_3F9H) \ __PMC_EV(ARMV8, EVENT_3FAH) \ __PMC_EV(ARMV8, EVENT_3FBH) \ __PMC_EV(ARMV8, EVENT_3FCH) \ __PMC_EV(ARMV8, EVENT_3FDH) \ __PMC_EV(ARMV8, EVENT_3FEH) \ __PMC_EV(ARMV8, EVENT_3FFH) #define PMC_EV_ARMV8_FIRST PMC_EV_ARMV8_EVENT_00H #define PMC_EV_ARMV8_LAST PMC_EV_ARMV8_EVENT_3FFH #define __PMC_EV_ALIAS_ARMV8_COMMON() \ __PMC_EV_ALIAS("SW_INCR", ARMV8_EVENT_00H) \ __PMC_EV_ALIAS("L1I_CACHE_REFILL", ARMV8_EVENT_01H) \ __PMC_EV_ALIAS("L1I_TLB_REFILL", ARMV8_EVENT_02H) \ __PMC_EV_ALIAS("L1D_CACHE_REFILL", ARMV8_EVENT_03H) \ __PMC_EV_ALIAS("L1D_CACHE", ARMV8_EVENT_04H) \ __PMC_EV_ALIAS("L1D_TLB_REFILL", ARMV8_EVENT_05H) \ __PMC_EV_ALIAS("INST_RETIRED", ARMV8_EVENT_08H) \ __PMC_EV_ALIAS("EXC_TAKEN", ARMV8_EVENT_09H) \ __PMC_EV_ALIAS("EXC_RETURN", ARMV8_EVENT_0AH) \ __PMC_EV_ALIAS("CID_WRITE_RETIRED", ARMV8_EVENT_0BH) \ __PMC_EV_ALIAS("BR_MIS_PRED", ARMV8_EVENT_10H) \ __PMC_EV_ALIAS("CPU_CYCLES", ARMV8_EVENT_11H) \ __PMC_EV_ALIAS("BR_PRED", ARMV8_EVENT_12H) \ __PMC_EV_ALIAS("MEM_ACCESS", ARMV8_EVENT_13H) \ __PMC_EV_ALIAS("L1I_CACHE", ARMV8_EVENT_14H) \ __PMC_EV_ALIAS("L1D_CACHE_WB", ARMV8_EVENT_15H) \ __PMC_EV_ALIAS("L2D_CACHE", ARMV8_EVENT_16H) \ __PMC_EV_ALIAS("L2D_CACHE_REFILL", ARMV8_EVENT_17H) \ __PMC_EV_ALIAS("L2D_CACHE_WB", ARMV8_EVENT_18H) \ __PMC_EV_ALIAS("BUS_ACCESS", ARMV8_EVENT_19H) \ __PMC_EV_ALIAS("MEMORY_ERROR", ARMV8_EVENT_1AH) \ __PMC_EV_ALIAS("BUS_CYCLES", ARMV8_EVENT_1DH) \ __PMC_EV_ALIAS("CHAIN", ARMV8_EVENT_1EH) \ __PMC_EV_ALIAS("BUS_ACCESS_LD", ARMV8_EVENT_60H) \ __PMC_EV_ALIAS("BUS_ACCESS_ST", ARMV8_EVENT_61H) \ __PMC_EV_ALIAS("BR_INDIRECT_SPEC", ARMV8_EVENT_7AH) \ __PMC_EV_ALIAS("EXC_IRQ", ARMV8_EVENT_86H) \ __PMC_EV_ALIAS("EXC_FIQ", ARMV8_EVENT_87H) #define __PMC_EV_ALIAS_ARMV8_CORTEX_A53() \ __PMC_EV_ALIAS_ARMV8_COMMON() \ __PMC_EV_ALIAS("LD_RETIRED", ARMV8_EVENT_06H) \ __PMC_EV_ALIAS("ST_RETIRED", ARMV8_EVENT_07H) \ __PMC_EV_ALIAS("PC_WRITE_RETIRED", ARMV8_EVENT_0CH) \ __PMC_EV_ALIAS("BR_IMMED_RETIRED", ARMV8_EVENT_0DH) \ __PMC_EV_ALIAS("BR_RETURN_RETIRED", ARMV8_EVENT_0EH) \ __PMC_EV_ALIAS("UNALIGNED_LDST_RETIRED",ARMV8_EVENT_0FH) #define __PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76() \ __PMC_EV_ALIAS_ARMV8_COMMON() \ __PMC_EV_ALIAS("INST_SPEC", ARMV8_EVENT_1BH) \ __PMC_EV_ALIAS("TTBR_WRITE_RETIRED", ARMV8_EVENT_1CH) \ __PMC_EV_ALIAS("L1D_CACHE_LD", ARMV8_EVENT_40H) \ __PMC_EV_ALIAS("L1D_CACHE_ST", ARMV8_EVENT_41H) \ __PMC_EV_ALIAS("L1D_CACHE_REFILL_LD", ARMV8_EVENT_42H) \ __PMC_EV_ALIAS("L1D_CACHE_REFILL_ST", ARMV8_EVENT_43H) \ __PMC_EV_ALIAS("L1D_CACHE_WB_VICTIM", ARMV8_EVENT_46H) \ __PMC_EV_ALIAS("L1D_CACHE_WB_CLEAN", ARMV8_EVENT_47H) \ __PMC_EV_ALIAS("L1D_CACHE_INVAL", ARMV8_EVENT_48H) \ __PMC_EV_ALIAS("L1D_TLB_REFILL_LD", ARMV8_EVENT_4CH) \ __PMC_EV_ALIAS("L1D_TLB_REFILL_ST", ARMV8_EVENT_4DH) \ __PMC_EV_ALIAS("L2D_CACHE_LD", ARMV8_EVENT_50H) \ __PMC_EV_ALIAS("L2D_CACHE_ST", ARMV8_EVENT_51H) \ __PMC_EV_ALIAS("L2D_CACHE_REFILL_LD", ARMV8_EVENT_52H) \ __PMC_EV_ALIAS("L2D_CACHE_REFILL_ST", ARMV8_EVENT_53H) \ __PMC_EV_ALIAS("L2D_CACHE_WB_VICTIM", ARMV8_EVENT_56H) \ __PMC_EV_ALIAS("L2D_CACHE_WB_CLEAN", ARMV8_EVENT_57H) \ __PMC_EV_ALIAS("L2D_CACHE_INVAL", ARMV8_EVENT_58H) \ __PMC_EV_ALIAS("MEM_ACCESS_LD", ARMV8_EVENT_66H) \ __PMC_EV_ALIAS("MEM_ACCESS_ST", ARMV8_EVENT_67H) \ __PMC_EV_ALIAS("UNALIGNED_LD_SPEC", ARMV8_EVENT_68H) \ __PMC_EV_ALIAS("UNALIGNED_ST_SPEC", ARMV8_EVENT_69H) \ __PMC_EV_ALIAS("UNALIGNED_LDST_SPEC", ARMV8_EVENT_6AH) \ __PMC_EV_ALIAS("LDREX_SPEC", ARMV8_EVENT_6CH) \ __PMC_EV_ALIAS("STREX_PASS_SPEC", ARMV8_EVENT_6DH) \ __PMC_EV_ALIAS("STREX_FAIL_SPEC", ARMV8_EVENT_6EH) \ __PMC_EV_ALIAS("LD_SPEC", ARMV8_EVENT_70H) \ __PMC_EV_ALIAS("ST_SPEC", ARMV8_EVENT_71H) \ __PMC_EV_ALIAS("LDST_SPEC", ARMV8_EVENT_72H) \ __PMC_EV_ALIAS("DP_SPEC", ARMV8_EVENT_73H) \ __PMC_EV_ALIAS("ASE_SPEC", ARMV8_EVENT_74H) \ __PMC_EV_ALIAS("VFP_SPEC", ARMV8_EVENT_75H) \ __PMC_EV_ALIAS("PC_WRITE_SPEC", ARMV8_EVENT_76H) \ __PMC_EV_ALIAS("CRYPTO_SPEC", ARMV8_EVENT_77H) \ __PMC_EV_ALIAS("BR_IMMED_SPEC", ARMV8_EVENT_78H) \ __PMC_EV_ALIAS("BR_RETURN_SPEC", ARMV8_EVENT_79H) \ __PMC_EV_ALIAS("ISB_SPEC", ARMV8_EVENT_7CH) \ __PMC_EV_ALIAS("DSB_SPEC", ARMV8_EVENT_7DH) \ __PMC_EV_ALIAS("DMB_SPEC", ARMV8_EVENT_7EH) \ __PMC_EV_ALIAS("EXC_UNDEF", ARMV8_EVENT_81H) \ __PMC_EV_ALIAS("EXC_SVC", ARMV8_EVENT_82H) \ __PMC_EV_ALIAS("EXC_PABORT", ARMV8_EVENT_83H) \ __PMC_EV_ALIAS("EXC_DABORT", ARMV8_EVENT_84H) \ __PMC_EV_ALIAS("EXC_SMC", ARMV8_EVENT_88H) \ __PMC_EV_ALIAS("EXC_HVC", ARMV8_EVENT_8AH) \ __PMC_EV_ALIAS("EXC_TRAP_PABORT", ARMV8_EVENT_8BH) \ __PMC_EV_ALIAS("EXC_TRAP_DABORT", ARMV8_EVENT_8CH) \ __PMC_EV_ALIAS("EXC_TRAP_OTHER", ARMV8_EVENT_8DH) \ __PMC_EV_ALIAS("EXC_TRAP_IRQ", ARMV8_EVENT_8EH) \ __PMC_EV_ALIAS("EXC_TRAP_FIQ", ARMV8_EVENT_8FH) \ __PMC_EV_ALIAS("RC_LD_SPEC", ARMV8_EVENT_90H) \ __PMC_EV_ALIAS("RC_ST_SPEC", ARMV8_EVENT_91H) #define __PMC_EV_ALIAS_ARMV8_CORTEX_A57() \ __PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76() \ __PMC_EV_ALIAS("BUS_ACCESS_SHARED", ARMV8_EVENT_62H) \ __PMC_EV_ALIAS("BUS_ACCESS_NOT_SHARED", ARMV8_EVENT_63H) \ __PMC_EV_ALIAS("BUS_ACCESS_NORMAL", ARMV8_EVENT_64H) \ __PMC_EV_ALIAS("BUS_ACCESS_PERIPH", ARMV8_EVENT_65H) #define __PMC_EV_ALIAS_ARMV8_CORTEX_A76() \ __PMC_EV_ALIAS_ARMV8_CORTEX_A57_A76() \ __PMC_EV_ALIAS("L2D_CACHE_ALLOCATE", ARMV8_EVENT_20H) \ __PMC_EV_ALIAS("BR_RETIRED", ARMV8_EVENT_21H) \ __PMC_EV_ALIAS("BR_MIS_PRED_RETIRED", ARMV8_EVENT_22H) \ __PMC_EV_ALIAS("STALL_FRONTEND", ARMV8_EVENT_23H) \ __PMC_EV_ALIAS("STALL_BACKEND", ARMV8_EVENT_24H) \ __PMC_EV_ALIAS("L1D_TLB", ARMV8_EVENT_25H) \ __PMC_EV_ALIAS("L1I_TLB", ARMV8_EVENT_26H) \ __PMC_EV_ALIAS("L3D_CACHE_ALLOCATE", ARMV8_EVENT_29H) \ __PMC_EV_ALIAS("L3D_CACHE_REFILL", ARMV8_EVENT_2AH) \ __PMC_EV_ALIAS("L3D_CACHE", ARMV8_EVENT_2BH) \ __PMC_EV_ALIAS("L2D_TLB_REFILL", ARMV8_EVENT_2DH) \ __PMC_EV_ALIAS("L2D_TLB", ARMV8_EVENT_2FH) \ __PMC_EV_ALIAS("REMOTE_ACCESS", ARMV8_EVENT_31H) \ __PMC_EV_ALIAS("DTLB_WALK", ARMV8_EVENT_34H) \ __PMC_EV_ALIAS("ITLB_WALK", ARMV8_EVENT_35H) \ __PMC_EV_ALIAS("LL_CACHE_RD", ARMV8_EVENT_36H) \ __PMC_EV_ALIAS("LL_CACHE_MISS_RD", ARMV8_EVENT_37H) \ __PMC_EV_ALIAS("L1D_CACHE_REFILL_INNER", ARMV8_EVENT_44H) \ __PMC_EV_ALIAS("L1D_CACHE_REFILL_OUTER", ARMV8_EVENT_45H) \ __PMC_EV_ALIAS("L1D_TLB_RD", ARMV8_EVENT_4EH) \ __PMC_EV_ALIAS("L1D_TLB_WR", ARMV8_EVENT_4FH) \ __PMC_EV_ALIAS("L2D_TLB_REFILL_RD", ARMV8_EVENT_5CH) \ __PMC_EV_ALIAS("L2D_TLB_REFILL_WR", ARMV8_EVENT_5DH) \ __PMC_EV_ALIAS("L2D_TLB_RD", ARMV8_EVENT_5EH) \ __PMC_EV_ALIAS("L2D_TLB_WR", ARMV8_EVENT_5FH) \ __PMC_EV_ALIAS("STREX_SPEC", ARMV8_EVENT_6FH) \ __PMC_EV_ALIAS("L3_CACHE_RD", ARMV8_EVENT_A0H) /* * ARM DMC-620 memory controller counters. */ #define __PMC_EV_DMC620_PMU_CD2() \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_cycle_count) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_allocate) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_queue_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_waiting_for_wr_data) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_read_backlog) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_waiting_for_mi) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_hazard_resolution) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_enqueue) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_arbitrate) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_lrank_turnaround_activate) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_prank_turnaround_activate) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_read_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_write_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_highhigh_qos_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_high_qos_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_medium_qos_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_low_qos_depth) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_activate) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_rdwr) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_refresh) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_training_request) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_t_mac_tracker) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_bk_fsm_tracker) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_bk_open_tracker) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_ranks_in_pwr_down) \ __PMC_EV(DMC620_PMU_CD2, clkdiv2_ranks_in_sref) \ #define __PMC_EV_DMC620_PMU_C() \ __PMC_EV(DMC620_PMU_C, clk_cycle_count) \ __PMC_EV(DMC620_PMU_C, clk_request) \ __PMC_EV(DMC620_PMU_C, clk_upload_stall) #define PMC_EV_DMC620_PMU_CD2_FIRST PMC_EV_DMC620_PMU_CD2_clkdiv2_cycle_count #define PMC_EV_DMC620_PMU_CD2_LAST PMC_EV_DMC620_PMU_CD2_clkdiv2_ranks_in_sref #define PMC_EV_DMC620_PMU_C_FIRST PMC_EV_DMC620_PMU_C_clk_cycle_count #define PMC_EV_DMC620_PMU_C_LAST PMC_EV_DMC620_PMU_C_clk_upload_stall /* * Arm CMN-600 Coherent Mesh Network controller counters. */ #define __PMC_EV_CMN600_PMU() \ __PMC_EV(CMN600_PMU, dn_rxreq_dvmop) \ __PMC_EV(CMN600_PMU, dn_rxreq_dvmsync) \ __PMC_EV(CMN600_PMU, dn_rxreq_dvmop_vmid_filtered) \ __PMC_EV(CMN600_PMU, dn_rxreq_retried) \ __PMC_EV(CMN600_PMU, dn_rxreq_trk_occupancy) \ __PMC_EV(CMN600_PMU, dn_rxreq_tlbi_dvmop) \ __PMC_EV(CMN600_PMU, dn_rxreq_bpi_dvmop) \ __PMC_EV(CMN600_PMU, dn_rxreq_pici_dvmop) \ __PMC_EV(CMN600_PMU, dn_rxreq_vivi_dvmop) \ __PMC_EV(CMN600_PMU, dn_rxreq_dvmop_other_filtered) \ __PMC_EV(CMN600_PMU, dn_rxreq_snp_sent) \ __PMC_EV(CMN600_PMU, dn_rxreq_snp_stalled) \ __PMC_EV(CMN600_PMU, dn_rxreq_trk_full) \ __PMC_EV(CMN600_PMU, hnf_cache_miss) \ __PMC_EV(CMN600_PMU, hnf_slc_sf_cache_access) \ __PMC_EV(CMN600_PMU, hnf_cache_fill) \ __PMC_EV(CMN600_PMU, hnf_pocq_retry) \ __PMC_EV(CMN600_PMU, hnf_pocq_reqs_recvd) \ __PMC_EV(CMN600_PMU, hnf_sf_hit) \ __PMC_EV(CMN600_PMU, hnf_sf_evictions) \ __PMC_EV(CMN600_PMU, hnf_dir_snoops_sent) \ __PMC_EV(CMN600_PMU, hnf_brd_snoops_sent) \ __PMC_EV(CMN600_PMU, hnf_slc_eviction) \ __PMC_EV(CMN600_PMU, hnf_slc_fill_invalid_way) \ __PMC_EV(CMN600_PMU, hnf_mc_retries) \ __PMC_EV(CMN600_PMU, hnf_mc_reqs) \ __PMC_EV(CMN600_PMU, hnf_qos_hh_retry) \ __PMC_EV(CMN600_PMU, hnf_qos_pocq) \ __PMC_EV(CMN600_PMU, hnf_pocq_addrhaz) \ __PMC_EV(CMN600_PMU, hnf_pocq_atomic_addrhaz) \ __PMC_EV(CMN600_PMU, hnf_ld_st_swp_adq_full) \ __PMC_EV(CMN600_PMU, hnf_cmp_adq_full) \ __PMC_EV(CMN600_PMU, hnf_txdat_stall) \ __PMC_EV(CMN600_PMU, hnf_txrsp_stall) \ __PMC_EV(CMN600_PMU, hnf_seq_full) \ __PMC_EV(CMN600_PMU, hnf_seq_hit) \ __PMC_EV(CMN600_PMU, hnf_snp_sent) \ __PMC_EV(CMN600_PMU, hnf_sfbi_dir_snp_sent) \ __PMC_EV(CMN600_PMU, hnf_sfbi_brd_snp_sent) \ __PMC_EV(CMN600_PMU, hnf_snp_sent_untrk) \ __PMC_EV(CMN600_PMU, hnf_intv_dirty) \ __PMC_EV(CMN600_PMU, hnf_stash_snp_sent) \ __PMC_EV(CMN600_PMU, hnf_stash_data_pull) \ __PMC_EV(CMN600_PMU, hnf_snp_fwded) \ __PMC_EV(CMN600_PMU, hni_rrt_rd_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, hni_rrt_wr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, hni_rdt_rd_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, hni_rdt_wr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, hni_wdb_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, hni_rrt_rd_alloc) \ __PMC_EV(CMN600_PMU, hni_rrt_wr_alloc) \ __PMC_EV(CMN600_PMU, hni_rdt_rd_alloc) \ __PMC_EV(CMN600_PMU, hni_rdt_wr_alloc) \ __PMC_EV(CMN600_PMU, hni_wdb_alloc) \ __PMC_EV(CMN600_PMU, hni_txrsp_retryack) \ __PMC_EV(CMN600_PMU, hni_arvalid_no_arready) \ __PMC_EV(CMN600_PMU, hni_arready_no_arvalid) \ __PMC_EV(CMN600_PMU, hni_awvalid_no_awready) \ __PMC_EV(CMN600_PMU, hni_awready_no_awvalid) \ __PMC_EV(CMN600_PMU, hni_wvalid_no_wready) \ __PMC_EV(CMN600_PMU, hni_txdat_stall) \ __PMC_EV(CMN600_PMU, hni_nonpcie_serialization) \ __PMC_EV(CMN600_PMU, hni_pcie_serialization) \ __PMC_EV(CMN600_PMU, xp_txflit_valid) \ __PMC_EV(CMN600_PMU, xp_txflit_stall) \ __PMC_EV(CMN600_PMU, xp_partial_dat_flit) \ __PMC_EV(CMN600_PMU, sbsx_rd_req) \ __PMC_EV(CMN600_PMU, sbsx_wr_req) \ __PMC_EV(CMN600_PMU, sbsx_cmo_req) \ __PMC_EV(CMN600_PMU, sbsx_txrsp_retryack) \ __PMC_EV(CMN600_PMU, sbsx_txdat_flitv) \ __PMC_EV(CMN600_PMU, sbsx_txrsp_flitv) \ __PMC_EV(CMN600_PMU, sbsx_rd_req_trkr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_wr_req_trkr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_cmo_req_trkr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_wdb_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_rd_axi_trkr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_cmo_axi_trkr_occ_cnt_ovfl) \ __PMC_EV(CMN600_PMU, sbsx_arvalid_no_arready) \ __PMC_EV(CMN600_PMU, sbsx_awvalid_no_awready) \ __PMC_EV(CMN600_PMU, sbsx_wvalid_no_wready) \ __PMC_EV(CMN600_PMU, sbsx_txdat_stall) \ __PMC_EV(CMN600_PMU, sbsx_txrsp_stall) \ __PMC_EV(CMN600_PMU, rnd_s0_rdata_beats) \ __PMC_EV(CMN600_PMU, rnd_s1_rdata_beats) \ __PMC_EV(CMN600_PMU, rnd_s2_rdata_beats) \ __PMC_EV(CMN600_PMU, rnd_rxdat_flits) \ __PMC_EV(CMN600_PMU, rnd_txdat_flits) \ __PMC_EV(CMN600_PMU, rnd_txreq_flits_total) \ __PMC_EV(CMN600_PMU, rnd_txreq_flits_retried) \ __PMC_EV(CMN600_PMU, rnd_rrt_occ_ovfl) \ __PMC_EV(CMN600_PMU, rnd_wrt_occ_ovfl) \ __PMC_EV(CMN600_PMU, rnd_txreq_flits_replayed) \ __PMC_EV(CMN600_PMU, rnd_wrcancel_sent) \ __PMC_EV(CMN600_PMU, rnd_s0_wdata_beats) \ __PMC_EV(CMN600_PMU, rnd_s1_wdata_beats) \ __PMC_EV(CMN600_PMU, rnd_s2_wdata_beats) \ __PMC_EV(CMN600_PMU, rnd_rrt_alloc) \ __PMC_EV(CMN600_PMU, rnd_wrt_alloc) \ __PMC_EV(CMN600_PMU, rnd_rdb_unord) \ __PMC_EV(CMN600_PMU, rnd_rdb_replay) \ __PMC_EV(CMN600_PMU, rnd_rdb_hybrid) \ __PMC_EV(CMN600_PMU, rnd_rdb_ord) \ __PMC_EV(CMN600_PMU, rni_s0_rdata_beats) \ __PMC_EV(CMN600_PMU, rni_s1_rdata_beats) \ __PMC_EV(CMN600_PMU, rni_s2_rdata_beats) \ __PMC_EV(CMN600_PMU, rni_rxdat_flits) \ __PMC_EV(CMN600_PMU, rni_txdat_flits) \ __PMC_EV(CMN600_PMU, rni_txreq_flits_total) \ __PMC_EV(CMN600_PMU, rni_txreq_flits_retried) \ __PMC_EV(CMN600_PMU, rni_rrt_occ_ovfl) \ __PMC_EV(CMN600_PMU, rni_wrt_occ_ovfl) \ __PMC_EV(CMN600_PMU, rni_txreq_flits_replayed) \ __PMC_EV(CMN600_PMU, rni_wrcancel_sent) \ __PMC_EV(CMN600_PMU, rni_s0_wdata_beats) \ __PMC_EV(CMN600_PMU, rni_s1_wdata_beats) \ __PMC_EV(CMN600_PMU, rni_s2_wdata_beats) \ __PMC_EV(CMN600_PMU, rni_rrt_alloc) \ __PMC_EV(CMN600_PMU, rni_wrt_alloc) \ __PMC_EV(CMN600_PMU, rni_rdb_unord) \ __PMC_EV(CMN600_PMU, rni_rdb_replay) \ __PMC_EV(CMN600_PMU, rni_rdb_hybrid) \ __PMC_EV(CMN600_PMU, rni_rdb_ord) \ __PMC_EV(CMN600_PMU, cxha_rddatbyp) \ __PMC_EV(CMN600_PMU, cxha_chirsp_up_stall) \ __PMC_EV(CMN600_PMU, cxha_chidat_up_stall) \ __PMC_EV(CMN600_PMU, cxha_snppcrd_lnk0_stall) \ __PMC_EV(CMN600_PMU, cxha_snppcrd_lnk1_stall) \ __PMC_EV(CMN600_PMU, cxha_snppcrd_lnk2_stall) \ __PMC_EV(CMN600_PMU, cxha_reqtrk_occ) \ __PMC_EV(CMN600_PMU, cxha_rdb_occ) \ __PMC_EV(CMN600_PMU, cxha_rdbbyp_occ) \ __PMC_EV(CMN600_PMU, cxha_wdb_occ) \ __PMC_EV(CMN600_PMU, cxha_snptrk_occ) \ __PMC_EV(CMN600_PMU, cxha_sdb_occ) \ __PMC_EV(CMN600_PMU, cxha_snphaz_occ) \ __PMC_EV(CMN600_PMU, cxra_req_trk_occ) \ __PMC_EV(CMN600_PMU, cxra_snp_trk_occ) \ __PMC_EV(CMN600_PMU, cxra_rd_dat_buf_occ) \ __PMC_EV(CMN600_PMU, cxra_wr_dat_buf_occ) \ __PMC_EV(CMN600_PMU, cxra_snp_sink_buf_occ) \ __PMC_EV(CMN600_PMU, cxra_snp_bcasts) \ __PMC_EV(CMN600_PMU, cxra_req_chains) \ __PMC_EV(CMN600_PMU, cxra_req_chain_avg_len) \ __PMC_EV(CMN600_PMU, cxra_chi_rsp_upload_stalls) \ __PMC_EV(CMN600_PMU, cxra_chi_dat_upload_stalls) \ __PMC_EV(CMN600_PMU, cxra_dat_pcrd_stalls_lnk0) \ __PMC_EV(CMN600_PMU, cxra_dat_pcrd_stalls_lnk1) \ __PMC_EV(CMN600_PMU, cxra_dat_pcrd_stalls_lnk2) \ __PMC_EV(CMN600_PMU, cxra_req_pcrd_stalls_lnk0) \ __PMC_EV(CMN600_PMU, cxra_req_pcrd_stalls_lnk1) \ __PMC_EV(CMN600_PMU, cxra_req_pcrd_stalls_lnk2) \ __PMC_EV(CMN600_PMU, cxra_ext_rsp_stall) \ __PMC_EV(CMN600_PMU, cxra_ext_dat_stall) \ __PMC_EV(CMN600_PMU, cxla_rx_tlp_link0) \ __PMC_EV(CMN600_PMU, cxla_rx_tlp_link1) \ __PMC_EV(CMN600_PMU, cxla_rx_tlp_link2) \ __PMC_EV(CMN600_PMU, cxla_tx_tlp_link0) \ __PMC_EV(CMN600_PMU, cxla_tx_tlp_link1) \ __PMC_EV(CMN600_PMU, cxla_tx_tlp_link2) \ __PMC_EV(CMN600_PMU, cxla_rx_cxs_link0) \ __PMC_EV(CMN600_PMU, cxla_rx_cxs_link1) \ __PMC_EV(CMN600_PMU, cxla_rx_cxs_link2) \ __PMC_EV(CMN600_PMU, cxla_tx_cxs_link0) \ __PMC_EV(CMN600_PMU, cxla_tx_cxs_link1) \ __PMC_EV(CMN600_PMU, cxla_tx_cxs_link2) \ __PMC_EV(CMN600_PMU, cxla_avg_rx_tlp_sz_dws) \ __PMC_EV(CMN600_PMU, cxla_avg_tx_tlp_sz_dws) \ __PMC_EV(CMN600_PMU, cxla_avg_rx_tlp_sz_ccix_msg) \ __PMC_EV(CMN600_PMU, cxla_avg_tx_tlp_sz_ccix_msg) \ __PMC_EV(CMN600_PMU, cxla_avg_sz_rx_cxs_dw_beat) \ __PMC_EV(CMN600_PMU, cxla_avg_sz_tx_cxs_dw_beat) \ __PMC_EV(CMN600_PMU, cxla_tx_cxs_link_credit_backpressure) \ __PMC_EV(CMN600_PMU, cxla_rx_tlp_buffer_full) \ __PMC_EV(CMN600_PMU, cxla_tx_tlp_buffer_full) \ __PMC_EV(CMN600_PMU, cxla_avg_latency_process_rx_tlp) \ __PMC_EV(CMN600_PMU, cxla_avg_latency_form_tx_tlp) #define PMC_EV_CMN600_PMU_FIRST PMC_EV_CMN600_PMU_dn_rxreq_dvmop #define PMC_EV_CMN600_PMU_LAST \ PMC_EV_CMN600_PMU_cxla_avg_latency_form_tx_tlp #define __PMC_EV_PPC7450() \ __PMC_EV(PPC7450, CYCLE) \ __PMC_EV(PPC7450, INSTR_COMPLETED) \ __PMC_EV(PPC7450, TLB_BIT_TRANSITIONS) \ __PMC_EV(PPC7450, INSTR_DISPATCHED) \ __PMC_EV(PPC7450, PMON_EXCEPT) \ __PMC_EV(PPC7450, PMON_SIG) \ __PMC_EV(PPC7450, VPU_INSTR_COMPLETED) \ __PMC_EV(PPC7450, VFPU_INSTR_COMPLETED) \ __PMC_EV(PPC7450, VIU1_INSTR_COMPLETED) \ __PMC_EV(PPC7450, VIU2_INSTR_COMPLETED) \ __PMC_EV(PPC7450, MTVSCR_INSTR_COMPLETED) \ __PMC_EV(PPC7450, MTVRSAVE_INSTR_COMPLETED) \ __PMC_EV(PPC7450, VPU_INSTR_WAIT_CYCLES) \ __PMC_EV(PPC7450, VFPU_INSTR_WAIT_CYCLES) \ __PMC_EV(PPC7450, VIU1_INSTR_WAIT_CYCLES) \ __PMC_EV(PPC7450, VIU2_INSTR_WAIT_CYCLES) \ __PMC_EV(PPC7450, MFVSCR_SYNC_CYCLES) \ __PMC_EV(PPC7450, VSCR_SAT_SET) \ __PMC_EV(PPC7450, STORE_INSTR_COMPLETED) \ __PMC_EV(PPC7450, L1_INSTR_CACHE_MISSES) \ __PMC_EV(PPC7450, L1_DATA_SNOOPS) \ __PMC_EV(PPC7450, UNRESOLVED_BRANCHES) \ __PMC_EV(PPC7450, SPEC_BUFFER_CYCLES) \ __PMC_EV(PPC7450, BRANCH_UNIT_STALL_CYCLES) \ __PMC_EV(PPC7450, TRUE_BRANCH_TARGET_HITS) \ __PMC_EV(PPC7450, BRANCH_LINK_STAC_PREDICTED) \ __PMC_EV(PPC7450, GPR_ISSUE_QUEUE_DISPATCHES) \ __PMC_EV(PPC7450, CYCLES_THREE_INSTR_DISPATCHED) \ __PMC_EV(PPC7450, THRESHOLD_INSTR_QUEUE_ENTRIES_CYCLES) \ __PMC_EV(PPC7450, THRESHOLD_VEC_INSTR_QUEUE_ENTRIES_CYCLES) \ __PMC_EV(PPC7450, CYCLES_NO_COMPLETED_INSTRS) \ __PMC_EV(PPC7450, IU2_INSTR_COMPLETED) \ __PMC_EV(PPC7450, BRANCHES_COMPLETED) \ __PMC_EV(PPC7450, EIEIO_INSTR_COMPLETED) \ __PMC_EV(PPC7450, MTSPR_INSTR_COMPLETED) \ __PMC_EV(PPC7450, SC_INSTR_COMPLETED) \ __PMC_EV(PPC7450, LS_LM_COMPLETED) \ __PMC_EV(PPC7450, ITLB_HW_TABLE_SEARCH_CYCLES) \ __PMC_EV(PPC7450, DTLB_HW_SEARCH_CYCLES_OVER_THRESHOLD) \ __PMC_EV(PPC7450, L1_INSTR_CACHE_ACCESSES) \ __PMC_EV(PPC7450, INSTR_BKPT_MATCHES) \ __PMC_EV(PPC7450, L1_DATA_CACHE_LOAD_MISS_CYCLES_OVER_THRESHOLD)\ __PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_ON_MODIFIED) \ __PMC_EV(PPC7450, LOAD_MISS_ALIAS) \ __PMC_EV(PPC7450, LOAD_MISS_ALIAS_ON_TOUCH) \ __PMC_EV(PPC7450, TOUCH_ALIAS) \ __PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_CASTOUT_QUEUE) \ __PMC_EV(PPC7450, L1_DATA_SNOOP_HIT_CASTOUT) \ __PMC_EV(PPC7450, L1_DATA_SNOOP_HITS) \ __PMC_EV(PPC7450, WRITE_THROUGH_STORES) \ __PMC_EV(PPC7450, CACHE_INHIBITED_STORES) \ __PMC_EV(PPC7450, L1_DATA_LOAD_HIT) \ __PMC_EV(PPC7450, L1_DATA_TOUCH_HIT) \ __PMC_EV(PPC7450, L1_DATA_STORE_HIT) \ __PMC_EV(PPC7450, L1_DATA_TOTAL_HITS) \ __PMC_EV(PPC7450, DST_INSTR_DISPATCHED) \ __PMC_EV(PPC7450, REFRESHED_DSTS) \ __PMC_EV(PPC7450, SUCCESSFUL_DST_TABLE_SEARCHES) \ __PMC_EV(PPC7450, DSS_INSTR_COMPLETED) \ __PMC_EV(PPC7450, DST_STREAM_0_CACHE_LINE_FETCHES) \ __PMC_EV(PPC7450, VTQ_SUSPENDS_DUE_TO_CTX_CHANGE) \ __PMC_EV(PPC7450, VTQ_LINE_FETCH_HIT) \ __PMC_EV(PPC7450, VEC_LOAD_INSTR_COMPLETED) \ __PMC_EV(PPC7450, FP_STORE_INSTR_COMPLETED_IN_LSU) \ __PMC_EV(PPC7450, FPU_RENORMALIZATION) \ __PMC_EV(PPC7450, FPU_DENORMALIZATION) \ __PMC_EV(PPC7450, FP_STORE_CAUSES_STALL_IN_LSU) \ __PMC_EV(PPC7450, LD_ST_TRUE_ALIAS_STALL) \ __PMC_EV(PPC7450, LSU_INDEXED_ALIAS_STALL) \ __PMC_EV(PPC7450, LSU_ALIAS_VS_FSQ_WB0_WB1) \ __PMC_EV(PPC7450, LSU_ALIAS_VS_CSQ) \ __PMC_EV(PPC7450, LSU_LOAD_HIT_LINE_ALIAS_VS_CSQ0) \ __PMC_EV(PPC7450, LSU_LOAD_MISS_LINE_ALIAS_VS_CSQ0) \ __PMC_EV(PPC7450, LSU_TOUCH_LINE_ALIAS_VS_FSQ_WB0_WB1) \ __PMC_EV(PPC7450, LSU_TOUCH_ALIAS_VS_CSQ) \ __PMC_EV(PPC7450, LSU_LMQ_FULL_STALL) \ __PMC_EV(PPC7450, FP_LOAD_INSTR_COMPLETED_IN_LSU) \ __PMC_EV(PPC7450, FP_LOAD_SINGLE_INSTR_COMPLETED_IN_LSU) \ __PMC_EV(PPC7450, FP_LOAD_DOUBLE_COMPLETED_IN_LSU) \ __PMC_EV(PPC7450, LSU_RA_LATCH_STALL) \ __PMC_EV(PPC7450, LSU_LOAD_VS_STORE_QUEUE_ALIAS_STALL) \ __PMC_EV(PPC7450, LSU_LMQ_INDEX_ALIAS) \ __PMC_EV(PPC7450, LSU_STORE_QUEUE_INDEX_ALIAS) \ __PMC_EV(PPC7450, LSU_CSQ_FORWARDING) \ __PMC_EV(PPC7450, LSU_MISALIGNED_LOAD_FINISH) \ __PMC_EV(PPC7450, LSU_MISALIGN_STORE_COMPLETED) \ __PMC_EV(PPC7450, LSU_MISALIGN_STALL) \ __PMC_EV(PPC7450, FP_ONE_QUARTER_FPSCR_RENAMES_BUSY) \ __PMC_EV(PPC7450, FP_ONE_HALF_FPSCR_RENAMES_BUSY) \ __PMC_EV(PPC7450, FP_THREE_QUARTERS_FPSCR_RENAMES_BUSY) \ __PMC_EV(PPC7450, FP_ALL_FPSCR_RENAMES_BUSY) \ __PMC_EV(PPC7450, FP_DENORMALIZED_RESULT) \ __PMC_EV(PPC7450, L1_DATA_TOTAL_MISSES) \ __PMC_EV(PPC7450, DISPATCHES_TO_FPR_ISSUE_QUEUE) \ __PMC_EV(PPC7450, LSU_INSTR_COMPLETED) \ __PMC_EV(PPC7450, LOAD_INSTR_COMPLETED) \ __PMC_EV(PPC7450, SS_SM_INSTR_COMPLETED) \ __PMC_EV(PPC7450, TLBIE_INSTR_COMPLETED) \ __PMC_EV(PPC7450, LWARX_INSTR_COMPLETED) \ __PMC_EV(PPC7450, MFSPR_INSTR_COMPLETED) \ __PMC_EV(PPC7450, REFETCH_SERIALIZATION) \ __PMC_EV(PPC7450, COMPLETION_QUEUE_ENTRIES_OVER_THRESHOLD) \ __PMC_EV(PPC7450, CYCLES_ONE_INSTR_DISPATCHED) \ __PMC_EV(PPC7450, CYCLES_TWO_INSTR_COMPLETED) \ __PMC_EV(PPC7450, ITLB_NON_SPECULATIVE_MISSES) \ __PMC_EV(PPC7450, CYCLES_WAITING_FROM_L1_INSTR_CACHE_MISS) \ __PMC_EV(PPC7450, L1_DATA_LOAD_ACCESS_MISS) \ __PMC_EV(PPC7450, L1_DATA_TOUCH_MISS) \ __PMC_EV(PPC7450, L1_DATA_STORE_MISS) \ __PMC_EV(PPC7450, L1_DATA_TOUCH_MISS_CYCLES) \ __PMC_EV(PPC7450, L1_DATA_CYCLES_USED) \ __PMC_EV(PPC7450, DST_STREAM_1_CACHE_LINE_FETCHES) \ __PMC_EV(PPC7450, VTQ_STREAM_CANCELED_PREMATURELY) \ __PMC_EV(PPC7450, VTQ_RESUMES_DUE_TO_CTX_CHANGE) \ __PMC_EV(PPC7450, VTQ_LINE_FETCH_MISS) \ __PMC_EV(PPC7450, VTQ_LINE_FETCH) \ __PMC_EV(PPC7450, TLBIE_SNOOPS) \ __PMC_EV(PPC7450, L1_INSTR_CACHE_RELOADS) \ __PMC_EV(PPC7450, L1_DATA_CACHE_RELOADS) \ __PMC_EV(PPC7450, L1_DATA_CACHE_CASTOUTS_TO_L2) \ __PMC_EV(PPC7450, STORE_MERGE_GATHER) \ __PMC_EV(PPC7450, CACHEABLE_STORE_MERGE_TO_32_BYTES) \ __PMC_EV(PPC7450, DATA_BKPT_MATCHES) \ __PMC_EV(PPC7450, FALL_THROUGH_BRANCHES_PROCESSED) \ __PMC_EV(PPC7450, \ FIRST_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY) \ __PMC_EV(PPC7450, SECOND_SPECULATION_BUFFER_ACTIVE) \ __PMC_EV(PPC7450, BPU_STALL_ON_LR_DEPENDENCY) \ __PMC_EV(PPC7450, BTIC_MISS) \ __PMC_EV(PPC7450, BRANCH_LINK_STACK_CORRECTLY_RESOLVED) \ __PMC_EV(PPC7450, FPR_ISSUE_STALLED) \ __PMC_EV(PPC7450, SWITCHES_BETWEEN_PRIV_USER) \ __PMC_EV(PPC7450, LSU_COMPLETES_FP_STORE_SINGLE) \ __PMC_EV(PPC7450, VR_ISSUE_QUEUE_DISPATCHES) \ __PMC_EV(PPC7450, VR_STALLS) \ __PMC_EV(PPC7450, GPR_RENAME_BUFFER_ENTRIES_OVER_THRESHOLD) \ __PMC_EV(PPC7450, FPR_ISSUE_QUEUE_ENTRIES) \ __PMC_EV(PPC7450, FPU_INSTR_COMPLETED) \ __PMC_EV(PPC7450, STWCX_INSTR_COMPLETED) \ __PMC_EV(PPC7450, LS_LM_INSTR_PIECES) \ __PMC_EV(PPC7450, ITLB_HW_SEARCH_CYCLES_OVER_THRESHOLD) \ __PMC_EV(PPC7450, DTLB_MISSES) \ __PMC_EV(PPC7450, CANCELLED_L1_INSTR_CACHE_MISSES) \ __PMC_EV(PPC7450, L1_DATA_CACHE_OP_HIT) \ __PMC_EV(PPC7450, L1_DATA_LOAD_MISS_CYCLES) \ __PMC_EV(PPC7450, L1_DATA_PUSHES) \ __PMC_EV(PPC7450, L1_DATA_TOTAL_MISS) \ __PMC_EV(PPC7450, VT2_FETCHES) \ __PMC_EV(PPC7450, TAKEN_BRANCHES_PROCESSED) \ __PMC_EV(PPC7450, BRANCH_FLUSHES) \ __PMC_EV(PPC7450, \ SECOND_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY) \ __PMC_EV(PPC7450, THIRD_SPECULATION_BUFFER_ACTIVE) \ __PMC_EV(PPC7450, BRANCH_UNIT_STALL_ON_CTR_DEPENDENCY) \ __PMC_EV(PPC7450, FAST_BTIC_HIT) \ __PMC_EV(PPC7450, BRANCH_LINK_STACK_MISPREDICTED) \ __PMC_EV(PPC7450, CYCLES_THREE_INSTR_COMPLETED) \ __PMC_EV(PPC7450, CYCLES_NO_INSTR_DISPATCHED) \ __PMC_EV(PPC7450, GPR_ISSUE_QUEUE_ENTRIES_OVER_THRESHOLD) \ __PMC_EV(PPC7450, GPR_ISSUE_QUEUE_STALLED) \ __PMC_EV(PPC7450, IU1_INSTR_COMPLETED) \ __PMC_EV(PPC7450, DSSALL_INSTR_COMPLETED) \ __PMC_EV(PPC7450, TLBSYNC_INSTR_COMPLETED) \ __PMC_EV(PPC7450, SYNC_INSTR_COMPLETED) \ __PMC_EV(PPC7450, SS_SM_INSTR_PIECES) \ __PMC_EV(PPC7450, DTLB_HW_SEARCH_CYCLES) \ __PMC_EV(PPC7450, SNOOP_RETRIES) \ __PMC_EV(PPC7450, SUCCESSFUL_STWCX) \ __PMC_EV(PPC7450, DST_STREAM_3_CACHE_LINE_FETCHES) \ __PMC_EV(PPC7450, \ THIRD_SPECULATIVE_BRANCH_BUFFER_RESOLVED_CORRECTLY) \ __PMC_EV(PPC7450, MISPREDICTED_BRANCHES) \ __PMC_EV(PPC7450, FOLDED_BRANCHES) \ __PMC_EV(PPC7450, FP_STORE_DOUBLE_COMPLETES_IN_LSU) \ __PMC_EV(PPC7450, L2_CACHE_HITS) \ __PMC_EV(PPC7450, L3_CACHE_HITS) \ __PMC_EV(PPC7450, L2_INSTR_CACHE_MISSES) \ __PMC_EV(PPC7450, L3_INSTR_CACHE_MISSES) \ __PMC_EV(PPC7450, L2_DATA_CACHE_MISSES) \ __PMC_EV(PPC7450, L3_DATA_CACHE_MISSES) \ __PMC_EV(PPC7450, L2_LOAD_HITS) \ __PMC_EV(PPC7450, L2_STORE_HITS) \ __PMC_EV(PPC7450, L3_LOAD_HITS) \ __PMC_EV(PPC7450, L3_STORE_HITS) \ __PMC_EV(PPC7450, L2_TOUCH_HITS) \ __PMC_EV(PPC7450, L3_TOUCH_HITS) \ __PMC_EV(PPC7450, SNOOP_MODIFIED) \ __PMC_EV(PPC7450, SNOOP_VALID) \ __PMC_EV(PPC7450, INTERVENTION) \ __PMC_EV(PPC7450, L2_CACHE_MISSES) \ __PMC_EV(PPC7450, L3_CACHE_MISSES) \ __PMC_EV(PPC7450, L2_CACHE_CASTOUTS) \ __PMC_EV(PPC7450, L3_CACHE_CASTOUTS) \ __PMC_EV(PPC7450, L2SQ_FULL_CYCLES) \ __PMC_EV(PPC7450, L3SQ_FULL_CYCLES) \ __PMC_EV(PPC7450, RAQ_FULL_CYCLES) \ __PMC_EV(PPC7450, WAQ_FULL_CYCLES) \ __PMC_EV(PPC7450, L1_EXTERNAL_INTERVENTIONS) \ __PMC_EV(PPC7450, L2_EXTERNAL_INTERVENTIONS) \ __PMC_EV(PPC7450, L3_EXTERNAL_INTERVENTIONS) \ __PMC_EV(PPC7450, EXTERNAL_INTERVENTIONS) \ __PMC_EV(PPC7450, EXTERNAL_PUSHES) \ __PMC_EV(PPC7450, EXTERNAL_SNOOP_RETRY) \ __PMC_EV(PPC7450, DTQ_FULL_CYCLES) \ __PMC_EV(PPC7450, BUS_RETRY) \ __PMC_EV(PPC7450, L2_VALID_REQUEST) \ __PMC_EV(PPC7450, BORDQ_FULL) \ __PMC_EV(PPC7450, BUS_TAS_FOR_READS) \ __PMC_EV(PPC7450, BUS_TAS_FOR_WRITES) \ __PMC_EV(PPC7450, BUS_READS_NOT_RETRIED) \ __PMC_EV(PPC7450, BUS_WRITES_NOT_RETRIED) \ __PMC_EV(PPC7450, BUS_READS_WRITES_NOT_RETRIED) \ __PMC_EV(PPC7450, BUS_RETRY_DUE_TO_L1_RETRY) \ __PMC_EV(PPC7450, BUS_RETRY_DUE_TO_PREVIOUS_ADJACENT) \ __PMC_EV(PPC7450, BUS_RETRY_DUE_TO_COLLISION) \ __PMC_EV(PPC7450, BUS_RETRY_DUE_TO_INTERVENTION_ORDERING) \ __PMC_EV(PPC7450, SNOOP_REQUESTS) \ __PMC_EV(PPC7450, PREFETCH_ENGINE_REQUEST) \ __PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_LOAD) \ __PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_STORE) \ __PMC_EV(PPC7450, PREFETCH_ENGINE_COLLISION_VS_INSTR_FETCH) \ __PMC_EV(PPC7450, \ PREFETCH_ENGINE_COLLISION_VS_LOAD_STORE_INSTR_FETCH) \ __PMC_EV(PPC7450, PREFETCH_ENGINE_FULL) #define PMC_EV_PPC7450_FIRST PMC_EV_PPC7450_CYCLE #define PMC_EV_PPC7450_LAST PMC_EV_PPC7450_PREFETCH_ENGINE_FULL #define __PMC_EV_PPC970() \ __PMC_EV(PPC970, INSTR_COMPLETED) \ __PMC_EV(PPC970, MARKED_GROUP_DISPATCH) \ __PMC_EV(PPC970, MARKED_STORE_COMPLETED) \ __PMC_EV(PPC970, GCT_EMPTY) \ __PMC_EV(PPC970, RUN_CYCLES) \ __PMC_EV(PPC970, OVERFLOW) \ __PMC_EV(PPC970, CYCLES) \ __PMC_EV(PPC970, THRESHOLD_TIMEOUT) \ __PMC_EV(PPC970, GROUP_DISPATCH) \ __PMC_EV(PPC970, BR_MARKED_INSTR_FINISH) \ __PMC_EV(PPC970, GCT_EMPTY_BY_SRQ_FULL) \ __PMC_EV(PPC970, STOP_COMPLETION) \ __PMC_EV(PPC970, LSU_EMPTY) \ __PMC_EV(PPC970, MARKED_STORE_WITH_INTR) \ __PMC_EV(PPC970, CYCLES_IN_SUPER) \ __PMC_EV(PPC970, VPU_MARKED_INSTR_COMPLETED) \ __PMC_EV(PPC970, FXU0_IDLE_FXU1_BUSY) \ __PMC_EV(PPC970, SRQ_EMPTY) \ __PMC_EV(PPC970, MARKED_GROUP_COMPLETED) \ __PMC_EV(PPC970, CR_MARKED_INSTR_FINISH) \ __PMC_EV(PPC970, DISPATCH_SUCCESS) \ __PMC_EV(PPC970, FXU0_IDLE_FXU1_IDLE) \ __PMC_EV(PPC970, ONE_PLUS_INSTR_COMPLETED) \ __PMC_EV(PPC970, GROUP_MARKED_IDU) \ __PMC_EV(PPC970, MARKED_GROUP_COMPLETE_TIMEOUT) \ __PMC_EV(PPC970, FXU0_BUSY_FXU1_BUSY) \ __PMC_EV(PPC970, MARKED_STORE_SENT_TO_STS) \ __PMC_EV(PPC970, FXU_MARKED_INSTR_FINISHED) \ __PMC_EV(PPC970, MARKED_GROUP_ISSUED) \ __PMC_EV(PPC970, FXU0_BUSY_FXU1_IDLE) \ __PMC_EV(PPC970, GROUP_COMPLETED) \ __PMC_EV(PPC970, FPU_MARKED_INSTR_COMPLETED) \ __PMC_EV(PPC970, MARKED_INSTR_FINISH_ANY_UNIT) \ __PMC_EV(PPC970, EXTERNAL_INTERRUPT) \ __PMC_EV(PPC970, GROUP_DISPATCH_REJECT) \ __PMC_EV(PPC970, LSU_MARKED_INSTR_FINISH) \ __PMC_EV(PPC970, TIMEBASE_EVENT) \ __PMC_EV(PPC970, LSU_COMPLETION_STALL) \ __PMC_EV(PPC970, FXU_COMPLETION_STALL) \ __PMC_EV(PPC970, DCACHE_MISS_COMPLETION_STALL) \ __PMC_EV(PPC970, FPU_COMPLETION_STALL) \ __PMC_EV(PPC970, FXU_LONG_INSTR_COMPLETION_STALL) \ __PMC_EV(PPC970, REJECT_COMPLETION_STALL) \ __PMC_EV(PPC970, FPU_LONG_INSTR_COMPLETION_STALL) \ __PMC_EV(PPC970, GCT_EMPTY_BY_ICACHE_MISS) \ __PMC_EV(PPC970, REJECT_COMPLETION_STALL_ERAT_MISS) \ __PMC_EV(PPC970, GCT_EMPTY_BY_BRANCH_MISS_PREDICT) \ __PMC_EV(PPC970, BUS_HIGH) \ __PMC_EV(PPC970, BUS_LOW) \ __PMC_EV(PPC970, ADDER) #define PMC_EV_PPC970_FIRST PMC_EV_PPC970_INSTR_COMPLETED #define PMC_EV_PPC970_LAST PMC_EV_PPC970_ADDER #define __PMC_EV_E500() \ __PMC_EV(E500, CYCLES) \ __PMC_EV(E500, INSTR_COMPLETED) \ __PMC_EV(E500, UOPS_COMPLETED) \ __PMC_EV(E500, INSTR_FETCHED) \ __PMC_EV(E500, UOPS_DECODED) \ __PMC_EV(E500, PM_EVENT_TRANSITIONS) \ __PMC_EV(E500, PM_EVENT_CYCLES) \ __PMC_EV(E500, BRANCH_INSTRS_COMPLETED) \ __PMC_EV(E500, LOAD_UOPS_COMPLETED) \ __PMC_EV(E500, STORE_UOPS_COMPLETED) \ __PMC_EV(E500, CQ_REDIRECTS) \ __PMC_EV(E500, BRANCHES_FINISHED) \ __PMC_EV(E500, TAKEN_BRANCHES_FINISHED) \ __PMC_EV(E500, FINISHED_UNCOND_BRANCHES_MISS_BTB) \ __PMC_EV(E500, BRANCH_MISPRED) \ __PMC_EV(E500, BTB_BRANCH_MISPRED_FROM_DIRECTION) \ __PMC_EV(E500, BTB_HITS_PSEUDO_HITS) \ __PMC_EV(E500, CYCLES_DECODE_STALLED) \ __PMC_EV(E500, CYCLES_ISSUE_STALLED) \ __PMC_EV(E500, CYCLES_BRANCH_ISSUE_STALLED) \ __PMC_EV(E500, CYCLES_SU1_SCHED_STALLED) \ __PMC_EV(E500, CYCLES_SU2_SCHED_STALLED) \ __PMC_EV(E500, CYCLES_MU_SCHED_STALLED) \ __PMC_EV(E500, CYCLES_LRU_SCHED_STALLED) \ __PMC_EV(E500, CYCLES_BU_SCHED_STALLED) \ __PMC_EV(E500, TOTAL_TRANSLATED) \ __PMC_EV(E500, LOADS_TRANSLATED) \ __PMC_EV(E500, STORES_TRANSLATED) \ __PMC_EV(E500, TOUCHES_TRANSLATED) \ __PMC_EV(E500, CACHEOPS_TRANSLATED) \ __PMC_EV(E500, CACHE_INHIBITED_ACCESS_TRANSLATED) \ __PMC_EV(E500, GUARDED_LOADS_TRANSLATED) \ __PMC_EV(E500, WRITE_THROUGH_STORES_TRANSLATED) \ __PMC_EV(E500, MISALIGNED_LOAD_STORE_ACCESS_TRANSLATED) \ __PMC_EV(E500, TOTAL_ALLOCATED_TO_DLFB) \ __PMC_EV(E500, LOADS_TRANSLATED_ALLOCATED_TO_DLFB) \ __PMC_EV(E500, STORES_COMPLETED_ALLOCATED_TO_DLFB) \ __PMC_EV(E500, TOUCHES_TRANSLATED_ALLOCATED_TO_DLFB) \ __PMC_EV(E500, STORES_COMPLETED) \ __PMC_EV(E500, DATA_L1_CACHE_LOCKS) \ __PMC_EV(E500, DATA_L1_CACHE_RELOADS) \ __PMC_EV(E500, DATA_L1_CACHE_CASTOUTS) \ __PMC_EV(E500, LOAD_MISS_DLFB_FULL) \ __PMC_EV(E500, LOAD_MISS_LDQ_FULL) \ __PMC_EV(E500, LOAD_GUARDED_MISS) \ __PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL) \ __PMC_EV(E500, ADDRESS_COLLISION) \ __PMC_EV(E500, DATA_MMU_MISS) \ __PMC_EV(E500, DATA_MMU_BUSY) \ __PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS) \ __PMC_EV(E500, LOAD_MISS_DLFB_FULL_CYCLES) \ __PMC_EV(E500, LOAD_MISS_LDQ_FULL_CYCLES) \ __PMC_EV(E500, LOAD_GUARDED_MISS_CYCLES) \ __PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL_CYCLES) \ __PMC_EV(E500, ADDRESS_COLLISION_CYCLES) \ __PMC_EV(E500, DATA_MMU_MISS_CYCLES) \ __PMC_EV(E500, DATA_MMU_BUSY_CYCLES) \ __PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS_CYCLES) \ __PMC_EV(E500, INSTR_L1_CACHE_LOCKS) \ __PMC_EV(E500, INSTR_L1_CACHE_RELOADS) \ __PMC_EV(E500, INSTR_L1_CACHE_FETCHES) \ __PMC_EV(E500, INSTR_MMU_TLB4K_RELOADS) \ __PMC_EV(E500, INSTR_MMU_VSP_RELOADS) \ __PMC_EV(E500, DATA_MMU_TLB4K_RELOADS) \ __PMC_EV(E500, DATA_MMU_VSP_RELOADS) \ __PMC_EV(E500, L2MMU_MISSES) \ __PMC_EV(E500, BIU_MASTER_REQUESTS) \ __PMC_EV(E500, BIU_MASTER_INSTR_SIDE_REQUESTS) \ __PMC_EV(E500, BIU_MASTER_DATA_SIDE_REQUESTS) \ __PMC_EV(E500, BIU_MASTER_DATA_SIDE_CASTOUT_REQUESTS) \ __PMC_EV(E500, BIU_MASTER_RETRIES) \ __PMC_EV(E500, SNOOP_REQUESTS) \ __PMC_EV(E500, SNOOP_HITS) \ __PMC_EV(E500, SNOOP_PUSHES) \ __PMC_EV(E500, SNOOP_RETRIES) \ __PMC_EV(E500, DLFB_LOAD_MISS_CYCLES) \ __PMC_EV(E500, ILFB_FETCH_MISS_CYCLES) \ __PMC_EV(E500, EXT_INPU_INTR_LATENCY_CYCLES) \ __PMC_EV(E500, CRIT_INPUT_INTR_LATENCY_CYCLES) \ __PMC_EV(E500, EXT_INPUT_INTR_PENDING_LATENCY_CYCLES) \ __PMC_EV(E500, CRIT_INPUT_INTR_PENDING_LATENCY_CYCLES) \ __PMC_EV(E500, PMC0_OVERFLOW) \ __PMC_EV(E500, PMC1_OVERFLOW) \ __PMC_EV(E500, PMC2_OVERFLOW) \ __PMC_EV(E500, PMC3_OVERFLOW) \ __PMC_EV(E500, INTERRUPTS_TAKEN) \ __PMC_EV(E500, EXT_INPUT_INTR_TAKEN) \ __PMC_EV(E500, CRIT_INPUT_INTR_TAKEN) \ __PMC_EV(E500, SYSCALL_TRAP_INTR) \ __PMC_EV(E500, TLB_BIT_TRANSITIONS) \ __PMC_EV(E500, L2_LINEFILL_BUFFER) \ __PMC_EV(E500, LV2_VS) \ __PMC_EV(E500, CASTOUTS_RELEASED) \ __PMC_EV(E500, INTV_ALLOCATIONS) \ __PMC_EV(E500, DLFB_RETRIES_TO_MBAR) \ __PMC_EV(E500, STORE_RETRIES) \ __PMC_EV(E500, STASH_L1_HITS) \ __PMC_EV(E500, STASH_L2_HITS) \ __PMC_EV(E500, STASH_BUSY_1) \ __PMC_EV(E500, STASH_BUSY_2) \ __PMC_EV(E500, STASH_BUSY_3) \ __PMC_EV(E500, STASH_HITS) \ __PMC_EV(E500, STASH_HIT_DLFB) \ __PMC_EV(E500, STASH_REQUESTS) \ __PMC_EV(E500, STASH_REQUESTS_L1) \ __PMC_EV(E500, STASH_REQUESTS_L2) \ __PMC_EV(E500, STALLS_NO_CAQ_OR_COB) \ __PMC_EV(E500, L2_CACHE_ACCESSES) \ __PMC_EV(E500, L2_HIT_CACHE_ACCESSES) \ __PMC_EV(E500, L2_CACHE_DATA_ACCESSES) \ __PMC_EV(E500, L2_CACHE_DATA_HITS) \ __PMC_EV(E500, L2_CACHE_INSTR_ACCESSES) \ __PMC_EV(E500, L2_CACHE_INSTR_HITS) \ __PMC_EV(E500, L2_CACHE_ALLOCATIONS) \ __PMC_EV(E500, L2_CACHE_DATA_ALLOCATIONS) \ __PMC_EV(E500, L2_CACHE_DIRTY_DATA_ALLOCATIONS) \ __PMC_EV(E500, L2_CACHE_INSTR_ALLOCATIONS) \ __PMC_EV(E500, L2_CACHE_UPDATES) \ __PMC_EV(E500, L2_CACHE_CLEAN_UPDATES) \ __PMC_EV(E500, L2_CACHE_DIRTY_UPDATES) \ __PMC_EV(E500, L2_CACHE_CLEAN_REDUNDANT_UPDATES) \ __PMC_EV(E500, L2_CACHE_DIRTY_REDUNDANT_UPDATES) \ __PMC_EV(E500, L2_CACHE_LOCKS) \ __PMC_EV(E500, L2_CACHE_CASTOUTS) \ __PMC_EV(E500, L2_CACHE_DATA_DIRTY_HITS) \ __PMC_EV(E500, INSTR_LFB_WENT_HIGH_PRIORITY) \ __PMC_EV(E500, SNOOP_THROTTLING_TURNED_ON) \ __PMC_EV(E500, L2_CLEAN_LINE_INVALIDATIONS) \ __PMC_EV(E500, L2_INCOHERENT_LINE_INVALIDATIONS) \ __PMC_EV(E500, L2_COHERENT_LINE_INVALIDATIONS) \ __PMC_EV(E500, COHERENT_LOOKUP_MISS_DUE_TO_VALID_BUT_INCOHERENT_MATCHES) \ __PMC_EV(E500, IAC1S_DETECTED) \ __PMC_EV(E500, IAC2S_DETECTED) \ __PMC_EV(E500, DAC1S_DTECTED) \ __PMC_EV(E500, DAC2S_DTECTED) \ __PMC_EV(E500, DVT0_DETECTED) \ __PMC_EV(E500, DVT1_DETECTED) \ __PMC_EV(E500, DVT2_DETECTED) \ __PMC_EV(E500, DVT3_DETECTED) \ __PMC_EV(E500, DVT4_DETECTED) \ __PMC_EV(E500, DVT5_DETECTED) \ __PMC_EV(E500, DVT6_DETECTED) \ __PMC_EV(E500, DVT7_DETECTED) \ __PMC_EV(E500, CYCLES_COMPLETION_STALLED_NEXUS_FIFO_FULL) \ __PMC_EV(E500, FPU_DOUBLE_PUMP) \ __PMC_EV(E500, FPU_FINISH) \ __PMC_EV(E500, FPU_DIVIDE_CYCLES) \ __PMC_EV(E500, FPU_DENORM_INPUT_CYCLES) \ __PMC_EV(E500, FPU_RESULT_STALL_CYCLES) \ __PMC_EV(E500, FPU_FPSCR_FULL_STALL) \ __PMC_EV(E500, FPU_PIPE_SYNC_STALLS) \ __PMC_EV(E500, FPU_INPUT_DATA_STALLS) \ __PMC_EV(E500, DECORATED_LOADS) \ __PMC_EV(E500, DECORATED_STORES) \ __PMC_EV(E500, LOAD_RETRIES) \ __PMC_EV(E500, STWCX_SUCCESSES) \ __PMC_EV(E500, STWCX_FAILURES) \ #define PMC_EV_E500_FIRST PMC_EV_E500_CYCLES #define PMC_EV_E500_LAST PMC_EV_E500_STWCX_FAILURES /* * All known PMC events. * * PMC event numbers are allocated sparsely to allow new PMC events to * be added to a PMC class without breaking ABI compatibility. The * current allocation scheme is: * * START #EVENTS DESCRIPTION * 0 0x1000 Reserved * 0x1000 0x0001 TSC * 0x2000 0x0080 AMD K7 events * 0x2080 0x0100 AMD K8 events * 0x10000 0x0080 INTEL architectural fixed-function events * 0x10080 0x0F80 free (was INTEL architectural programmable events) * 0x11000 0x0080 free (was INTEL Pentium 4 events) * 0x11080 0x0080 free (was INTEL Pentium MMX events) * 0x11100 0x0100 free (was INTEL Pentium Pro/P-II/P-III/Pentium-M events) * 0x11200 0x00FF free (was INTEL XScale events) * 0x11300 0x00FF free (was MIPS 24K events) * 0x11400 0x00FF free (was Octeon events) * 0x11500 0x00FF free (was MIPS 74K events) * 0x11600 0x00FF free (was BERI statcounters) * 0x13000 0x00FF MPC7450 events * 0x13100 0x00FF IBM PPC970 events * 0x13200 0x00FF free (was IBM POWER8 events) * 0x13300 0x00FF Freescale e500 events * 0x14000 0x0100 ARMv7 events * 0x14100 0x0400 ARMv8 events * 0x14500 0x0020 ARM DMC-620 clkdiv2 events * 0x14520 0x0080 ARM DMC-620 clk events * 0x14600 0x0100 ARM CMN-600 events * 0x20000 0x1000 Software events */ #define __PMC_EVENTS() \ __PMC_EV_BLOCK(TSC, 0x01000) \ __PMC_EV_TSC() \ __PMC_EV_BLOCK(K7, 0x02000) \ __PMC_EV_K7() \ __PMC_EV_BLOCK(K8, 0x02080) \ __PMC_EV_K8() \ __PMC_EV_BLOCK(IAF, 0x10000) \ __PMC_EV_IAF() \ __PMC_EV_BLOCK(PPC7450, 0x13000) \ __PMC_EV_PPC7450() \ __PMC_EV_BLOCK(PPC970, 0x13100) \ __PMC_EV_PPC970() \ __PMC_EV_BLOCK(E500, 0x13300) \ __PMC_EV_E500() \ __PMC_EV_BLOCK(ARMV7, 0x14000) \ __PMC_EV_ARMV7() \ __PMC_EV_BLOCK(ARMV8, 0x14100) \ __PMC_EV_ARMV8() \ __PMC_EV_BLOCK(DMC620_PMU_CD2, 0x14500) \ __PMC_EV_DMC620_PMU_CD2() \ __PMC_EV_BLOCK(DMC620_PMU_C, 0x14520) \ __PMC_EV_DMC620_PMU_C() \ __PMC_EV_BLOCK(CMN600_PMU, 0x14600) \ __PMC_EV_CMN600_PMU() #define PMC_EVENT_FIRST PMC_EV_TSC_TSC #define PMC_EVENT_LAST PMC_EV_SOFT_LAST #endif /* _DEV_HWPMC_PMC_EVENTS_H_ */