555 P4_EVENT_TC_DELIVER_MODE,
556 P4_EVENT_BPU_FETCH_REQUEST,
557 P4_EVENT_ITLB_REFERENCE,
558 P4_EVENT_MEMORY_CANCEL,
559 P4_EVENT_MEMORY_COMPLETE,
560 P4_EVENT_LOAD_PORT_REPLAY,
561 P4_EVENT_STORE_PORT_REPLAY,
562 P4_EVENT_MOB_LOAD_REPLAY,
563 P4_EVENT_PAGE_WALK_TYPE,
564 P4_EVENT_BSQ_CACHE_REFERENCE,
565 P4_EVENT_IOQ_ALLOCATION,
566 P4_EVENT_IOQ_ACTIVE_ENTRIES,
567 P4_EVENT_FSB_DATA_ACTIVITY,
568 P4_EVENT_BSQ_ALLOCATION,
569 P4_EVENT_BSQ_ACTIVE_ENTRIES,
570 P4_EVENT_SSE_INPUT_ASSIST,
571 P4_EVENT_PACKED_SP_UOP,
572 P4_EVENT_PACKED_DP_UOP,
573 P4_EVENT_SCALAR_SP_UOP,
574 P4_EVENT_SCALAR_DP_UOP,
575 P4_EVENT_64BIT_MMX_UOP,
576 P4_EVENT_128BIT_MMX_UOP,
579 P4_EVENT_GLOBAL_POWER_EVENTS,
581 P4_EVENT_UOP_QUEUE_WRITES,
582 P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE,
583 P4_EVENT_RETIRED_BRANCH_TYPE,
584 P4_EVENT_RESOURCE_STALL,
590 P4_EVENT_FRONT_END_EVENT,
591 P4_EVENT_EXECUTION_EVENT,
592 P4_EVENT_REPLAY_EVENT,
593 P4_EVENT_INSTR_RETIRED,
594 P4_EVENT_UOPS_RETIRED,
596 P4_EVENT_BRANCH_RETIRED,
597 P4_EVENT_MISPRED_BRANCH_RETIRED,
599 P4_EVENT_MACHINE_CLEAR,
600 P4_EVENT_INSTR_COMPLETED,
604 int eventsel=(escr>>25)&0x3f;
605 int cccrsel=(cccr>>13)&0x7;
610 case 0x1:
if (cccrsel==1) {
611 if (escr_addr>0x3c8) {
613 event_key=P4_EVENT_TC_DELIVER_MODE;
617 event_key=P4_EVENT_RESOURCE_STALL;
621 if (escr_addr<0x3af) {
623 event_key=P4_EVENT_PAGE_WALK_TYPE;
627 event_key=P4_EVENT_UOPS_RETIRED;
631 case 0x2:
if (cccrsel==5) {
632 if (escr_addr<0x3a8) {
634 event_key=P4_EVENT_MEMORY_CANCEL;
637 event_key=P4_EVENT_MACHINE_CLEAR;
639 }
else if (cccrsel==1) {
640 event_key=P4_EVENT_64BIT_MMX_UOP;
641 }
else if (cccrsel==4) {
642 event_key=P4_EVENT_INSTR_RETIRED;
643 }
else if (cccrsel==2) {
644 event_key=P4_EVENT_UOP_TYPE;
647 case 0x3:
if (cccrsel==0) {
648 event_key=P4_EVENT_BPU_FETCH_REQUEST;
651 event_key=P4_EVENT_MOB_LOAD_REPLAY;
654 event_key=P4_EVENT_IOQ_ALLOCATION;
657 event_key=P4_EVENT_MISPRED_BRANCH_RETIRED;
660 event_key=P4_EVENT_X87_ASSIST;
663 case 0x4:
if (cccrsel==2) {
664 if (escr_addr<0x3b0) {
666 event_key=P4_EVENT_LOAD_PORT_REPLAY;
670 event_key=P4_EVENT_RETIRED_BRANCH_TYPE;
674 event_key=P4_EVENT_X87_FP_UOP;
677 event_key=P4_EVENT_RESPONSE;
680 case 0x5:
if (cccrsel==2) {
681 if (escr_addr<0x3b0) {
683 event_key=P4_EVENT_STORE_PORT_REPLAY;
687 event_key=P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE;
691 event_key=P4_EVENT_BSQ_ALLOCATION;
694 event_key=P4_EVENT_TC_MS_XFER;
697 event_key=P4_EVENT_WC_BUFFER;
700 case 0x6:
if (cccrsel==7) {
701 event_key=P4_EVENT_BSQ_ACTIVE_ENTRIES;
704 event_key=P4_EVENT_TC_MISC;
707 event_key=P4_EVENT_SNOOP;
710 event_key=P4_EVENT_BRANCH_RETIRED;
713 case 0x7: event_key=P4_EVENT_INSTR_COMPLETED;
break;
714 case 0x8:
if (cccrsel==2) {
715 event_key=P4_EVENT_MEMORY_COMPLETE;
718 event_key=P4_EVENT_PACKED_SP_UOP;
721 event_key=P4_EVENT_BNR;
724 event_key=P4_EVENT_FRONT_END_EVENT;
727 case 0x9:
if (cccrsel==0) {
728 event_key=P4_EVENT_UOP_QUEUE_WRITES;
731 event_key=P4_EVENT_REPLAY_EVENT;
734 case 0xa: event_key=P4_EVENT_SCALAR_SP_UOP;
break;
735 case 0xc:
if (cccrsel==7) {
736 event_key=P4_EVENT_BSQ_CACHE_REFERENCE;
739 event_key=P4_EVENT_PACKED_DP_UOP;
742 event_key=P4_EVENT_EXECUTION_EVENT;
745 case 0xe: event_key=P4_EVENT_SCALAR_DP_UOP;
break;
746 case 0x13: event_key=P4_EVENT_GLOBAL_POWER_EVENTS;
break;
747 case 0x16: event_key=P4_EVENT_B2B_CYCLES;
break;
748 case 0x17: event_key=P4_EVENT_FSB_DATA_ACTIVITY;
break;
749 case 0x18: event_key=P4_EVENT_ITLB_REFERENCE;
break;
750 case 0x1a:
if (cccrsel==6) {
751 event_key=P4_EVENT_IOQ_ACTIVE_ENTRIES;
754 event_key=P4_EVENT_128BIT_MMX_UOP;
757 case 0x34: event_key= P4_EVENT_SSE_INPUT_ASSIST;
break;
760 pe_event=(escr&0x1ffffff)<<32;
761 pe_event|=(cccr&0xfffff000);
762 pe_event|=(((
long long)(event_key))<<57);