📄 counters.mx
字号:
}int _2PMC(int cset, int ctr /* 0/1 */) { switch(cset) { case ALF_ESCR_0_1: return 12 + ctr; case BPU_ESCR_0_1: case BSU_ESCR_0_1: return 2 + ctr; case BSU_ESCR_0: return 0 + ctr; case BSU_ESCR_1: return 2 + ctr; case CRU_ESCR_0_1: return 14 + ctr; case CRU_ESCR_2_3: return 16 + ctr; case DAC_ESCR_0_1: return 8 + ctr; case FIRM_ESCR_0_1: return 10 + ctr; case FSB_ESCR_0_1: return 0 + ctr; case FSB_ESCR_0: return 0 + ctr; case FSB_ESCR_1: return 2 + ctr; case ITLB_ESCR_0_1: return 0 + ctr; case MOB_ESCR_0_1: return 2 + ctr; case MS_ESCR_0_1: return 4 + ctr; case PMH_ESCR_0_1: return 0 + ctr; case RAT_ESCR_0_1: return 12 + ctr; case SAAT_ESCR_0_1: return 8 + ctr; case TBPU_ESCR_0_1: return 6 + ctr; case TC_ESCR_0_1: return 4 + ctr; } return 0;}unsigned intdo_event_number (unsigned int n, int ctr, struct perfctr_cpu_control *cpu_control){ /* argument n indexes our local p4 table, * translate to perfctr code and mask */ int code = event[n].code ; int mask = event[n].mask ; const struct perfctr_event_set *s = perfctr_cpu_event_set(PERFCTR_X86_INTEL_P4M3); int cnt = perfctr_event_set_count(s); const struct perfctr_event *e = perfctr_event_set_find(s, cnt, code); if( !s || code >= cnt) { fprintf(stderr, "perfex: too many event specifiers\n"); exit(1); } /* for now just 0 or 1 */ cpu_control->evntsel[ctr] = 3 << 16 | 1 << 12 | _2ESCR(e->counters_set, ctr)<<13; if (mask) { cpu_control->p4.escr[ctr] = 1 << 2 /* count the app not the kernel */ | mask << 9 | e->evntsel << 25; } else { cpu_control->p4.escr[ctr] = 1 << 2 /* count the app not the kernel */ | e->unit_mask->default_value << 9 | e->evntsel << 25; } cpu_control->pmc_map[ctr] = 1 << 31 | _2PMC(e->counters_set, ctr); cpu_control->nractrs ++; cpu_control->tsc_on = 1; return n;}#endif#elif ( defined(HW_Linux) && defined(HW_ia64) )#if defined(HAVE_LIBPFM)#include <perfmon/pfmlib.h>#if PFMLIB_MAJ_VERSION(PFMLIB_VERSION) > 2#include <perfmon/perfmon.h>typedef struct { int fd ; pfmlib_input_param_t inp ; pfarg_reg_t pd[PFMLIB_MAX_PMDS] ; /* these are not actually needed at stop_counters... */ pfmlib_output_param_t outp ; pfarg_reg_t pc[PFMLIB_MAX_PMCS] ; pfarg_load_t load_args ;} pfmInfo_t;#else typedef struct { pid_t pid; pfmlib_param_t evt; pfarg_reg_t pd[PMU_MAX_PMDS];} pfmInfo_t;#endif#endif /* HAVE_LIBPFM */#define X_NUMEVENTS 0event_t *X_event = NO_event;/* unfortunately, pfmlib version 3 changed api AND counter definitions... */#if PFMLIB_MAJ_VERSION(PFMLIB_VERSION) > 2#define I1_NUMEVENTS 230event_t I1_event[I1_NUMEVENTS + 1] = {{0, 0, "PME_ITA_ALAT_INST_CHKA_LDC_ALL", "ALAT_INST_CHKA_LDC_ALL"}, /* { "ALAT_INST_CHKA_LDC_ALL", {0x30036} , 0xf0, 2, {0xffff0003}, NULL}, */{1, 1, "PME_ITA_ALAT_INST_CHKA_LDC_FP", "ALAT_INST_CHKA_LDC_FP"}, /* { "ALAT_INST_CHKA_LDC_FP", {0x10036} , 0xf0, 2, {0xffff0003}, NULL}, */{2, 2, "PME_ITA_ALAT_INST_CHKA_LDC_INT", "ALAT_INST_CHKA_LDC_INT"}, /* { "ALAT_INST_CHKA_LDC_INT", {0x20036} , 0xf0, 2, {0xffff0003}, NULL}, */{3, 3, "PME_ITA_ALAT_INST_FAILED_CHKA_LDC_ALL", "ALAT_INST_FAILED_CHKA_LDC_ALL"}, /* { "ALAT_INST_FAILED_CHKA_LDC_ALL", {0x30037} , 0xf0, 2, {0xffff0003}, NULL}, */{4, 4, "PME_ITA_ALAT_INST_FAILED_CHKA_LDC_FP", "ALAT_INST_FAILED_CHKA_LDC_FP"}, /* { "ALAT_INST_FAILED_CHKA_LDC_FP", {0x10037} , 0xf0, 2, {0xffff0003}, NULL}, */{5, 5, "PME_ITA_ALAT_INST_FAILED_CHKA_LDC_INT", "ALAT_INST_FAILED_CHKA_LDC_INT"}, /* { "ALAT_INST_FAILED_CHKA_LDC_INT", {0x20037} , 0xf0, 2, {0xffff0003}, NULL}, */{6, 6, "PME_ITA_ALAT_REPLACEMENT_ALL", "ALAT_REPLACEMENT_ALL"}, /* { "ALAT_REPLACEMENT_ALL", {0x30038} , 0xf0, 2, {0xffff0007}, NULL}, */{7, 7, "PME_ITA_ALAT_REPLACEMENT_FP", "ALAT_REPLACEMENT_FP"}, /* { "ALAT_REPLACEMENT_FP", {0x10038} , 0xf0, 2, {0xffff0007}, NULL}, */{8, 8, "PME_ITA_ALAT_REPLACEMENT_INT", "ALAT_REPLACEMENT_INT"}, /* { "ALAT_REPLACEMENT_INT", {0x20038} , 0xf0, 2, {0xffff0007}, NULL}, */{9, 9, "PME_ITA_ALL_STOPS_DISPERSED", "ALL_STOPS_DISPERSED"}, /* { "ALL_STOPS_DISPERSED", {0x2f} , 0xf0, 1, {0xffff0001}, NULL}, */{10, 10, "PME_ITA_BRANCH_EVENT", "BRANCH_EVENT"}, /* { "BRANCH_EVENT", {0x811} , 0xf0, 1, {0xffff0003}, NULL}, */{11, 11, "PME_ITA_BRANCH_MULTIWAY_ALL_PATHS_ALL_PREDICTIONS", "BRANCH_MULTIWAY_ALL_PATHS_ALL_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_ALL_PATHS_ALL_PREDICTIONS", {0xe} , 0xf0, 1, {0xffff0003}, NULL}, */{12, 12, "PME_ITA_BRANCH_MULTIWAY_ALL_PATHS_CORRECT_PREDICTIONS", "BRANCH_MULTIWAY_ALL_PATHS_CORRECT_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_ALL_PATHS_CORRECT_PREDICTIONS", {0x1000e} , 0xf0, 1, {0xffff0003}, NULL}, */{13, 13, "PME_ITA_BRANCH_MULTIWAY_ALL_PATHS_WRONG_PATH", "BRANCH_MULTIWAY_ALL_PATHS_WRONG_PATH"}, /* { "BRANCH_MULTIWAY_ALL_PATHS_WRONG_PATH", {0x2000e} , 0xf0, 1, {0xffff0003}, NULL}, */{14, 14, "PME_ITA_BRANCH_MULTIWAY_ALL_PATHS_WRONG_TARGET", "BRANCH_MULTIWAY_ALL_PATHS_WRONG_TARGET"}, /* { "BRANCH_MULTIWAY_ALL_PATHS_WRONG_TARGET", {0x3000e} , 0xf0, 1, {0xffff0003}, NULL}, */{15, 15, "PME_ITA_BRANCH_MULTIWAY_NOT_TAKEN_ALL_PREDICTIONS", "BRANCH_MULTIWAY_NOT_TAKEN_ALL_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_NOT_TAKEN_ALL_PREDICTIONS", {0x8000e} , 0xf0, 1, {0xffff0003}, NULL}, */{16, 16, "PME_ITA_BRANCH_MULTIWAY_NOT_TAKEN_CORRECT_PREDICTIONS", "BRANCH_MULTIWAY_NOT_TAKEN_CORRECT_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_NOT_TAKEN_CORRECT_PREDICTIONS", {0x9000e} , 0xf0, 1, {0xffff0003}, NULL}, */{17, 17, "PME_ITA_BRANCH_MULTIWAY_NOT_TAKEN_WRONG_PATH", "BRANCH_MULTIWAY_NOT_TAKEN_WRONG_PATH"}, /* { "BRANCH_MULTIWAY_NOT_TAKEN_WRONG_PATH", {0xa000e} , 0xf0, 1, {0xffff0003}, NULL}, */{18, 18, "PME_ITA_BRANCH_MULTIWAY_NOT_TAKEN_WRONG_TARGET", "BRANCH_MULTIWAY_NOT_TAKEN_WRONG_TARGET"}, /* { "BRANCH_MULTIWAY_NOT_TAKEN_WRONG_TARGET", {0xb000e} , 0xf0, 1, {0xffff0003}, NULL}, */{19, 19, "PME_ITA_BRANCH_MULTIWAY_TAKEN_ALL_PREDICTIONS", "BRANCH_MULTIWAY_TAKEN_ALL_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_TAKEN_ALL_PREDICTIONS", {0xc000e} , 0xf0, 1, {0xffff0003}, NULL}, */{20, 20, "PME_ITA_BRANCH_MULTIWAY_TAKEN_CORRECT_PREDICTIONS", "BRANCH_MULTIWAY_TAKEN_CORRECT_PREDICTIONS"}, /* { "BRANCH_MULTIWAY_TAKEN_CORRECT_PREDICTIONS", {0xd000e} , 0xf0, 1, {0xffff0003}, NULL}, */{21, 21, "PME_ITA_BRANCH_MULTIWAY_TAKEN_WRONG_PATH", "BRANCH_MULTIWAY_TAKEN_WRONG_PATH"}, /* { "BRANCH_MULTIWAY_TAKEN_WRONG_PATH", {0xe000e} , 0xf0, 1, {0xffff0003}, NULL}, */{22, 22, "PME_ITA_BRANCH_MULTIWAY_TAKEN_WRONG_TARGET", "BRANCH_MULTIWAY_TAKEN_WRONG_TARGET"}, /* { "BRANCH_MULTIWAY_TAKEN_WRONG_TARGET", {0xf000e} , 0xf0, 1, {0xffff0003}, NULL}, */{23, 23, "PME_ITA_BRANCH_NOT_TAKEN", "BRANCH_NOT_TAKEN"}, /* { "BRANCH_NOT_TAKEN", {0x8000d} , 0xf0, 1, {0xffff0003}, NULL}, */{24, 24, "PME_ITA_BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", {0x6000f} , 0xf0, 1, {0xffff0003}, NULL}, */{25, 25, "PME_ITA_BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_1ST_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", {0x4000f} , 0xf0, 1, {0xffff0003}, NULL}, */{26, 26, "PME_ITA_BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", {0x7000f} , 0xf0, 1, {0xffff0003}, NULL}, */{27, 27, "PME_ITA_BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_1ST_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", {0x5000f} , 0xf0, 1, {0xffff0003}, NULL}, */{28, 28, "PME_ITA_BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", {0xa000f} , 0xf0, 1, {0xffff0003}, NULL}, */{29, 29, "PME_ITA_BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_2ND_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", {0x8000f} , 0xf0, 1, {0xffff0003}, NULL}, */{30, 30, "PME_ITA_BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", {0xb000f} , 0xf0, 1, {0xffff0003}, NULL}, */{31, 31, "PME_ITA_BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_2ND_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", {0x9000f} , 0xf0, 1, {0xffff0003}, NULL}, */{32, 32, "PME_ITA_BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_CORRECTLY_PREDICTED", {0xe000f} , 0xf0, 1, {0xffff0003}, NULL}, */{33, 33, "PME_ITA_BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_3RD_STAGE_NT_OUTCOMES_INCORRECTLY_PREDICTED", {0xc000f} , 0xf0, 1, {0xffff0003}, NULL}, */{34, 34, "PME_ITA_BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_CORRECTLY_PREDICTED", {0xf000f} , 0xf0, 1, {0xffff0003}, NULL}, */{35, 35, "PME_ITA_BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_3RD_STAGE_TK_OUTCOMES_INCORRECTLY_PREDICTED", {0xd000f} , 0xf0, 1, {0xffff0003}, NULL}, */{36, 36, "PME_ITA_BRANCH_PATH_ALL_NT_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_ALL_NT_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_ALL_NT_OUTCOMES_CORRECTLY_PREDICTED", {0x2000f} , 0xf0, 1, {0xffff0003}, NULL}, */{37, 37, "PME_ITA_BRANCH_PATH_ALL_NT_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_ALL_NT_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_ALL_NT_OUTCOMES_INCORRECTLY_PREDICTED", {0xf} , 0xf0, 1, {0xffff0003}, NULL}, */{38, 38, "PME_ITA_BRANCH_PATH_ALL_TK_OUTCOMES_CORRECTLY_PREDICTED", "BRANCH_PATH_ALL_TK_OUTCOMES_CORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_ALL_TK_OUTCOMES_CORRECTLY_PREDICTED", {0x3000f} , 0xf0, 1, {0xffff0003}, NULL}, */{39, 39, "PME_ITA_BRANCH_PATH_ALL_TK_OUTCOMES_INCORRECTLY_PREDICTED", "BRANCH_PATH_ALL_TK_OUTCOMES_INCORRECTLY_PREDICTED"}, /* { "BRANCH_PATH_ALL_TK_OUTCOMES_INCORRECTLY_PREDICTED", {0x1000f} , 0xf0, 1, {0xffff0003}, NULL}, */{40, 40, "PME_ITA_BRANCH_PREDICTOR_1ST_STAGE_ALL_PREDICTIONS", "BRANCH_PREDICTOR_1ST_STAGE_ALL_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_1ST_STAGE_ALL_PREDICTIONS", {0x40010} , 0xf0, 1, {0xffff0003}, NULL}, */{41, 41, "PME_ITA_BRANCH_PREDICTOR_1ST_STAGE_CORRECT_PREDICTIONS", "BRANCH_PREDICTOR_1ST_STAGE_CORRECT_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_1ST_STAGE_CORRECT_PREDICTIONS", {0x50010} , 0xf0, 1, {0xffff0003}, NULL}, */{42, 42, "PME_ITA_BRANCH_PREDICTOR_1ST_STAGE_WRONG_PATH", "BRANCH_PREDICTOR_1ST_STAGE_WRONG_PATH"}, /* { "BRANCH_PREDICTOR_1ST_STAGE_WRONG_PATH", {0x60010} , 0xf0, 1, {0xffff0003}, NULL}, */{43, 43, "PME_ITA_BRANCH_PREDICTOR_1ST_STAGE_WRONG_TARGET", "BRANCH_PREDICTOR_1ST_STAGE_WRONG_TARGET"}, /* { "BRANCH_PREDICTOR_1ST_STAGE_WRONG_TARGET", {0x70010} , 0xf0, 1, {0xffff0003}, NULL}, */{44, 44, "PME_ITA_BRANCH_PREDICTOR_2ND_STAGE_ALL_PREDICTIONS", "BRANCH_PREDICTOR_2ND_STAGE_ALL_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_2ND_STAGE_ALL_PREDICTIONS", {0x80010} , 0xf0, 1, {0xffff0003}, NULL}, */{45, 45, "PME_ITA_BRANCH_PREDICTOR_2ND_STAGE_CORRECT_PREDICTIONS", "BRANCH_PREDICTOR_2ND_STAGE_CORRECT_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_2ND_STAGE_CORRECT_PREDICTIONS", {0x90010} , 0xf0, 1, {0xffff0003}, NULL}, */{46, 46, "PME_ITA_BRANCH_PREDICTOR_2ND_STAGE_WRONG_PATH", "BRANCH_PREDICTOR_2ND_STAGE_WRONG_PATH"}, /* { "BRANCH_PREDICTOR_2ND_STAGE_WRONG_PATH", {0xa0010} , 0xf0, 1, {0xffff0003}, NULL}, */{47, 47, "PME_ITA_BRANCH_PREDICTOR_2ND_STAGE_WRONG_TARGET", "BRANCH_PREDICTOR_2ND_STAGE_WRONG_TARGET"}, /* { "BRANCH_PREDICTOR_2ND_STAGE_WRONG_TARGET", {0xb0010} , 0xf0, 1, {0xffff0003}, NULL}, */{48, 48, "PME_ITA_BRANCH_PREDICTOR_3RD_STAGE_ALL_PREDICTIONS", "BRANCH_PREDICTOR_3RD_STAGE_ALL_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_3RD_STAGE_ALL_PREDICTIONS", {0xc0010} , 0xf0, 1, {0xffff0003}, NULL}, */{49, 49, "PME_ITA_BRANCH_PREDICTOR_3RD_STAGE_CORRECT_PREDICTIONS", "BRANCH_PREDICTOR_3RD_STAGE_CORRECT_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_3RD_STAGE_CORRECT_PREDICTIONS", {0xd0010} , 0xf0, 1, {0xffff0003}, NULL}, */{50, 50, "PME_ITA_BRANCH_PREDICTOR_3RD_STAGE_WRONG_PATH", "BRANCH_PREDICTOR_3RD_STAGE_WRONG_PATH"}, /* { "BRANCH_PREDICTOR_3RD_STAGE_WRONG_PATH", {0xe0010} , 0xf0, 1, {0xffff0003}, NULL}, */{51, 51, "PME_ITA_BRANCH_PREDICTOR_3RD_STAGE_WRONG_TARGET", "BRANCH_PREDICTOR_3RD_STAGE_WRONG_TARGET"}, /* { "BRANCH_PREDICTOR_3RD_STAGE_WRONG_TARGET", {0xf0010} , 0xf0, 1, {0xffff0003}, NULL}, */{52, 52, "PME_ITA_BRANCH_PREDICTOR_ALL_ALL_PREDICTIONS", "BRANCH_PREDICTOR_ALL_ALL_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_ALL_ALL_PREDICTIONS", {0x10} , 0xf0, 1, {0xffff0003}, NULL}, */{53, 53, "PME_ITA_BRANCH_PREDICTOR_ALL_CORRECT_PREDICTIONS", "BRANCH_PREDICTOR_ALL_CORRECT_PREDICTIONS"}, /* { "BRANCH_PREDICTOR_ALL_CORRECT_PREDICTIONS", {0x10010} , 0xf0, 1, {0xffff0003}, NULL}, */{54, 54, "PME_ITA_BRANCH_PREDICTOR_ALL_WRONG_PATH", "BRANCH_PREDICTOR_ALL_WRONG_PATH"}, /* { "BRANCH_PREDICTOR_ALL_WRONG_PATH", {0x20010} , 0xf0, 1, {0xffff0003}, NULL}, */{55, 55, "PME_ITA_BRANCH_PREDICTOR_ALL_WRONG_TARGET", "BRANCH_PREDICTOR_ALL_WRONG_TARGET"}, /* { "BRANCH_PREDICTOR_ALL_WRONG_TARGET", {0x30010} , 0xf0, 1, {0xffff0003}, NULL}, */{56, 56, "PME_ITA_BRANCH_TAKEN_SLOT_0", "BRANCH_TAKEN_SLOT_0"}, /* { "BRANCH_TAKEN_SLOT_0", {0x1000d} , 0xf0, 1, {0xffff0003}, NULL}, */{57, 57, "PME_ITA_BRANCH_TAKEN_SLOT_1", "BRANCH_TAKEN_SLOT_1"}, /* { "BRANCH_TAKEN_SLOT_1", {0x2000d} , 0xf0, 1, {0xffff0003}, NULL}, */{58, 58, "PME_ITA_BRANCH_TAKEN_SLOT_2", "BRANCH_TAKEN_SLOT_2"}, /* { "BRANCH_TAKEN_SLOT_2", {0x4000d} , 0xf0, 1, {0xffff0003}, NULL}, */{59, 59, "PME_ITA_BUS_ALL_ANY", "BUS_ALL_ANY"}, /* { "BUS_ALL_ANY", {0x10047} , 0xf0, 1, {0xffff0000}, NULL}, */{60, 60, "PME_ITA_BUS_ALL_IO", "BUS_ALL_IO"},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -