//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ // //=============================================================================// #ifndef EVENTMODES_H #define EVENTMODES_H #pragma once /* Event Modes to choose from: P4Event_TC_deliver_mode P4Event_BPU_fetch_request P4Event_ITLB_reference P4Event_memory_cancel P4Event_memory_complete P4Event_load_port_replay P4Event_store_port_replay P4Event_MOB_load_replay P4Event_page_walk_type P4Event_BSQ_cache_reference P4Event_IOQ_allocation P4Event_IOQ_active_entries P4Event_FSB_data_activity P4Event_BSQ_allocation P4Event_BSQ_active_entries P4Event_SSE_input_assist P4Event_packed_SP_uop P4Event_packed_DP_uop P4Event_scalar_SP_uop P4Event_scalar_DP_uop P4Event_64bit_MMX_uop P4Event_128bit_MMX_uop P4Event_x87_FP_uop P4Event_x87_SIMD_moves_uop P4Event_TC_misc P4Event_global_power_events P4Event_tc_ms_xfer P4Event_uop_queue_writes P4Event_retired_mispred_branch_type P4Event_retired_branch_type P4Event_resource_stall P4Event_WC_Buffer P4Event_b2b_cycles P4Event_bnr P4Event_snoop P4Event_response P4Event_front_end_event P4Event_execution_event P4Event_replay_event P4Event_instr_retired P4Event_uops_retired P4Event_uop_type P4Event_branch_retired P4Event_mispred_branch_retired P4Event_x87_assist P4Event_machine_clear */ class P4P4Event_TC_deliver_mode: public P4BaseEvent { public: EVENT_MASK(TC_deliver_mode) * eventMask; P4P4Event_TC_deliver_mode() { eventMask = (EVENT_MASK(TC_deliver_mode) *)&m_eventMask; escr.ESCREventSelect = 0x01; cccr.CCCRSelect = 0x01; //// eventType = EVENT_TYPE(TC_deliver_mode); description = _T("TC_deliver_mode"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4P4Event_BPU_fetch_request: public P4BaseEvent { public: EVENT_MASK(BPU_fetch_request)* eventMask; P4P4Event_BPU_fetch_request() { eventMask = (EVENT_MASK(BPU_fetch_request) *)&m_eventMask; escr.ESCREventSelect= 0x03; cccr.CCCRSelect= 0x00; // eventType = EVENT_TYPE(BPU_fetch_request); description=_T("BPU_fetch_request"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4P4Event_ITLB_reference: public P4BaseEvent { public: EVENT_MASK(ITLB_reference) * eventMask; P4P4Event_ITLB_reference() { eventMask = (EVENT_MASK(ITLB_reference) *)&m_eventMask; escr.ESCREventSelect= 0x18; cccr.CCCRSelect= 0x03; // eventType=EVENT_TYPE(ITLB_reference); description=_T("ITLB_reference"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_memory_cancel: public P4BaseEvent { public: EVENT_MASK(memory_cancel) * eventMask; P4Event_memory_cancel() { eventMask = (EVENT_MASK(memory_cancel) *)&m_eventMask; escr.ESCREventSelect= 0x02; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(memory_cancel); description=_T("memory_cancel"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_memory_complete: public P4BaseEvent { public: EVENT_MASK(memory_complete) * eventMask; P4Event_memory_complete() { eventMask = (EVENT_MASK(memory_complete) *)&m_eventMask; escr.ESCREventSelect= 0x08; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(memory_complete); description=_T("memory_complete"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_load_port_replay: public P4BaseEvent { public: EVENT_MASK(load_port_replay) * eventMask; P4Event_load_port_replay() { eventMask = (EVENT_MASK(load_port_replay) *)&m_eventMask; escr.ESCREventSelect= 0x04; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(load_port_replay); description=_T("load_port_replay"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_store_port_replay: public P4BaseEvent { public: EVENT_MASK(store_port_replay) * eventMask; P4Event_store_port_replay() { eventMask = (EVENT_MASK(store_port_replay) *)&m_eventMask; escr.ESCREventSelect= 0x05; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(store_port_replay); description=_T("store_port_replay"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_MOB_load_replay: public P4BaseEvent { public: EVENT_MASK(MOB_load_replay) * eventMask; P4Event_MOB_load_replay() { eventMask = (EVENT_MASK(MOB_load_replay) *)&m_eventMask; escr.ESCREventSelect= 0x03; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(MOB_load_replay); description=_T("MOB_load_replay"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_page_walk_type: public P4BaseEvent { public: EVENT_MASK(page_walk_type) * eventMask; P4Event_page_walk_type() { eventMask = (EVENT_MASK(page_walk_type) *)&m_eventMask; escr.ESCREventSelect= 0x01; cccr.CCCRSelect= 0x04; // eventType=EVENT_TYPE(page_walk_type); description=_T("page_walk_type"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_BSQ_cache_reference: public P4BaseEvent { public: EVENT_MASK(BSQ_cache_reference) * eventMask; P4Event_BSQ_cache_reference() { eventMask = (EVENT_MASK(BSQ_cache_reference) *)&m_eventMask; escr.ESCREventSelect= 0x0C; cccr.CCCRSelect= 0x07; // eventType=EVENT_TYPE(BSQ_cache_reference); description=_T("BSQ_cache_reference"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_IOQ_allocation: public P4BaseEvent { public: EVENT_MASK(IOQ) * eventMask; P4Event_IOQ_allocation() { eventMask = (EVENT_MASK(IOQ) *)&m_eventMask; escr.ESCREventSelect= 0x03; cccr.CCCRSelect= 0x06; // eventType=EVENT_TYPE(IOQ); description=_T("IOQ_allocation"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_IOQ_active_entries: public P4BaseEvent { public: EVENT_MASK(IOQ) * eventMask; P4Event_IOQ_active_entries() { eventMask = (EVENT_MASK(IOQ) *)&m_eventMask; escr.ESCREventSelect= 0x1A; cccr.CCCRSelect= 0x06; // eventType=EVENT_TYPE(IOQ); description=_T("IOQ_active_entries"); UseCounter2(); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_FSB_data_activity: public P4BaseEvent { public: EVENT_MASK(FSB_data_activity) * eventMask; P4Event_FSB_data_activity() { eventMask = (EVENT_MASK(FSB_data_activity) *)&m_eventMask; escr.ESCREventSelect= 0x17; cccr.CCCRSelect= 0x06; // eventType=EVENT_TYPE(FSB_data_activity); description=_T("FSB_data_activity"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_BSQ_allocation: public P4BaseEvent { public: EVENT_MASK(BSQ) * eventMask; P4Event_BSQ_allocation() { eventMask = (EVENT_MASK(BSQ) *)&m_eventMask; escr.ESCREventSelect= 0x05; cccr.CCCRSelect= 0x07; // eventType=EVENT_TYPE(BSQ); description=_T("BSQ_allocation"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } }; class P4Event_BSQ_active_entries: public P4BaseEvent { public: EVENT_MASK(BSQ) * eventMask; P4Event_BSQ_active_entries() { eventMask = (EVENT_MASK(BSQ) *)&m_eventMask; escr.ESCREventSelect= 0x06; cccr.CCCRSelect= 0x07; // eventType=EVENT_TYPE(BSQ); description=_T("bsq_active_entries"); UseCounter2(); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_SSE_input_assist: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_SSE_input_assist() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x34; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("SSE_input_assist"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_packed_SP_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_packed_SP_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x08; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("packed_SP_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_packed_DP_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_packed_DP_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x0C; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("packed_DP_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_scalar_SP_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_scalar_SP_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x0A; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("scalar_SP_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_scalar_DP_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_scalar_DP_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x0E; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("scalar_DP_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_64bit_MMX_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_64bit_MMX_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x02; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("64bit_MMX_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_128bit_MMX_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_128bit_MMX_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x1A; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("128bit_MMX_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_x87_FP_uop: public P4BaseEvent { public: EVENT_MASK(firm_uop) * eventMask; P4Event_x87_FP_uop() { eventMask = (EVENT_MASK(firm_uop) *)&m_eventMask; escr.ESCREventSelect= 0x04; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(firm_uop); description=_T("x87_FP_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_x87_SIMD_moves_uop: public P4BaseEvent { public: EVENT_MASK(x87_SIMD_moves_uop) * eventMask; P4Event_x87_SIMD_moves_uop() { eventMask = (EVENT_MASK(x87_SIMD_moves_uop) *)&m_eventMask; escr.ESCREventSelect= 0x2E; cccr.CCCRSelect= 0; // eventType=EVENT_TYPE(x87_SIMD_moves_uop); description=_T("x87_SIMD_moves_uop"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_TC_misc: public P4BaseEvent { public: EVENT_MASK(TC_misc) * eventMask; P4Event_TC_misc() { eventMask = (EVENT_MASK(TC_misc) *)&m_eventMask; escr.ESCREventSelect= 0x06; cccr.CCCRSelect= 0x01; // eventType=EVENT_TYPE(TC_misc); description=_T("TC_misc"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4Event_global_power_events: public P4BaseEvent { public: EVENT_MASK(global_power_events) * eventMask; P4Event_global_power_events() { eventMask = (EVENT_MASK(global_power_events) *)&m_eventMask; escr.ESCREventSelect= 0x13; cccr.CCCRSelect= 0x06; // eventType=EVENT_TYPE(global_power_events); description=_T("global_power_events"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_tc_ms_xfer: public P4BaseEvent { public: EVENT_MASK(tc_ms_xfer) * eventMask; P4Event_tc_ms_xfer() { eventMask = (EVENT_MASK(tc_ms_xfer) *)&m_eventMask; escr.ESCREventSelect= 0x05; cccr.CCCRSelect= 0x00; // eventType=EVENT_TYPE(tc_ms_xfer); description=_T("tc_ms_xfer"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4Event_uop_queue_writes: public P4BaseEvent { public: EVENT_MASK(uop_queue_writes) * eventMask; P4Event_uop_queue_writes() { eventMask = (EVENT_MASK(uop_queue_writes) *)&m_eventMask; escr.ESCREventSelect= 0x09; cccr.CCCRSelect= 0x00; // eventType=EVENT_TYPE(uop_queue_writes); description=_T("uop_queue_writes"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4Event_retired_mispred_branch_type: public P4BaseEvent { public: EVENT_MASK(branch_type) * eventMask; P4Event_retired_mispred_branch_type() { eventMask = (EVENT_MASK(branch_type) *)&m_eventMask; escr.ESCREventSelect= 0x05; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(branch_type); description=_T("retired_mispred_branch_type"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4Event_retired_branch_type: public P4BaseEvent { public: EVENT_MASK(branch_type) * eventMask; P4Event_retired_branch_type() { eventMask = (EVENT_MASK(branch_type) *)&m_eventMask; escr.ESCREventSelect= 0x04; cccr.CCCRSelect= 0x04; // eventType=EVENT_TYPE(branch_type); description=_T("retired_branch_type"); UseCounter4(); } void UseCounter4() { SetCounter(4);; } void UseCounter5() { SetCounter(5); } void UseCounter6() { SetCounter(6); } void UseCounter7() { SetCounter(7); } }; class P4Event_resource_stall: public P4BaseEvent { public: EVENT_MASK(resource_stall) * eventMask; P4Event_resource_stall() { eventMask = (EVENT_MASK(resource_stall) *)&m_eventMask; escr.ESCREventSelect= 0x01; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(resource_stall); description=_T("resource_stall"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_WC_Buffer: public P4BaseEvent { public: EVENT_MASK(WC_Buffer) * eventMask; P4Event_WC_Buffer() { eventMask = (EVENT_MASK(WC_Buffer) *)&m_eventMask; escr.ESCREventSelect= 0x05; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(WC_Buffer); description=_T("WC_Buffer"); UseCounter8(); } void UseCounter8() { SetCounter(8); } void UseCounter9() { SetCounter(9); } void UseCounter10() { SetCounter(10); } void UseCounter11() { SetCounter(11); } }; class P4Event_b2b_cycles: public P4BaseEvent { public: EVENT_MASK(b2b_cycles) * eventMask; P4Event_b2b_cycles() { eventMask = (EVENT_MASK(b2b_cycles) *)&m_eventMask; escr.ESCREventSelect= 0x16; cccr.CCCRSelect= 0x03; // eventType=EVENT_TYPE(b2b_cycles); description=_T("b2b_cycles"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_bnr: public P4BaseEvent { public: EVENT_MASK(bnr) * eventMask; P4Event_bnr() { eventMask = (EVENT_MASK(bnr) *)&m_eventMask; escr.ESCREventSelect= 0x08; cccr.CCCRSelect= 0x03; // eventType=EVENT_TYPE(bnr); description=_T("bnr"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_snoop: public P4BaseEvent { public: EVENT_MASK(snoop) * eventMask; P4Event_snoop() { eventMask = (EVENT_MASK(snoop) *)&m_eventMask; escr.ESCREventSelect= 0x06; cccr.CCCRSelect= 0x03; // eventType=EVENT_TYPE(snoop); description=_T("snoop"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_response: public P4BaseEvent { public: EVENT_MASK(response) * eventMask; P4Event_response() { eventMask = (EVENT_MASK(response) *)&m_eventMask; escr.ESCREventSelect= 0x04; cccr.CCCRSelect= 0x03; // eventType=EVENT_TYPE(response); description=_T("response"); UseCounter0(); } void UseCounter0() { SetCounter(0); } void UseCounter1() { SetCounter(1); } void UseCounter2() { SetCounter(2); } void UseCounter3() { SetCounter(3); } }; class P4Event_front_end_event: public P4BaseEvent { public: EVENT_MASK(nbogus_bogus) * eventMask; P4Event_front_end_event() { eventMask = (EVENT_MASK(nbogus_bogus) *)&m_eventMask; escr.ESCREventSelect= 0x08; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(nbogus_bogus); description=_T("front_end_event"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_execution_event: public P4BaseEvent { public: EVENT_MASK(execution_event) * eventMask; P4Event_execution_event() { eventMask = (EVENT_MASK(execution_event) *)&m_eventMask; escr.ESCREventSelect= 0x0C; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(execution_event); description=_T("execution_event"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_replay_event: public P4BaseEvent { public: EVENT_MASK(nbogus_bogus) * eventMask; P4Event_replay_event() { eventMask = (EVENT_MASK(nbogus_bogus) *)&m_eventMask; escr.ESCREventSelect= 0x09; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(nbogus_bogus); description=_T("replay_event"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_instr_retired: public P4BaseEvent { public: EVENT_MASK(instr_retired) * eventMask; P4Event_instr_retired() { eventMask = (EVENT_MASK(instr_retired) *)&m_eventMask; escr.ESCREventSelect= 0x02; cccr.CCCRSelect= 0x04; // eventType=EVENT_TYPE(instr_retired); description=_T("instr_retired"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_uops_retired: public P4BaseEvent { public: EVENT_MASK(nbogus_bogus) * eventMask; P4Event_uops_retired() { eventMask = (EVENT_MASK(nbogus_bogus) *)&m_eventMask; escr.ESCREventSelect= 0x01; cccr.CCCRSelect= 0x04; // eventType=EVENT_TYPE(nbogus_bogus); description=_T("uops_retired"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_uop_type: public P4BaseEvent { public: EVENT_MASK(uop_type) * eventMask; P4Event_uop_type() { eventMask = (EVENT_MASK(uop_type) *)&m_eventMask; escr.ESCREventSelect= 0x02; cccr.CCCRSelect= 0x02; // eventType=EVENT_TYPE(uop_type); description=_T("uop_type"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_branch_retired: public P4BaseEvent { public: EVENT_MASK(branch_retired) * eventMask; P4Event_branch_retired() { eventMask = (EVENT_MASK(branch_retired) *)&m_eventMask; escr.ESCREventSelect= 0x06; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(branch_retired); description=_T("branch_retired"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_mispred_branch_retired: public P4BaseEvent { public: EVENT_MASK(mispred_branch_retired) * eventMask; P4Event_mispred_branch_retired() { eventMask = (EVENT_MASK(mispred_branch_retired) *)&m_eventMask; escr.ESCREventSelect= 0x03; cccr.CCCRSelect= 0x04; // eventType=EVENT_TYPE(mispred_branch_retired); description=_T("mispred_branch_retired"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_x87_assist: public P4BaseEvent { public: EVENT_MASK(x87_assist) * eventMask; P4Event_x87_assist() { eventMask = (EVENT_MASK(x87_assist) *)&m_eventMask; escr.ESCREventSelect= 0x03; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(x87_assist); description=_T("x87_assist"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; class P4Event_machine_clear: public P4BaseEvent { public: EVENT_MASK(machine_clear) * eventMask; P4Event_machine_clear() { eventMask = (EVENT_MASK(machine_clear) *)&m_eventMask; escr.ESCREventSelect= 0x02; cccr.CCCRSelect= 0x05; // eventType=EVENT_TYPE(machine_clear); description=_T("machine_clear"); UseCounter12(); } void UseCounter12() { SetCounter(12); } void UseCounter13() { SetCounter(13); } void UseCounter14() { SetCounter(14); } void UseCounter15() { SetCounter(15); } void UseCounter16() { SetCounter(16); } void UseCounter17() { SetCounter(17); } }; #endif // EVENTMODES_H