OpenAtom  Version1.5a
hpm.c
1 /*----------------------------------------------------------*/
2 /* Simple interface to the hardware performance counters. */
3 /* Copied from BG/P /soft/apps/UPC/examples/ */
4 /* This code, along with timebase.c and timebase.h are NOT */
5 /* covered by the OpenAtom license. We make no claims as to */
6 /* authorship or copyright wrt to these files. */
7 /* They have been modified from the BG/P distributed source */
8 /* to remove MPI so they can be used from Charm++. The */
9 /* revised version is included for distribution convenience */
10 /* purposes only. IBM included no license with these files */
11 /* and the files contained no claimed author or copyplate. */
12 /* Contact them for more information, but my guess is they */
13 /* were hacked up by an intern and are distributed as is, */
14 /* caveat emptor. */
15 /*----------------------------------------------------------*/
16 /* C / C++: */
17 /* HPM_Init(); initialize the counters */
18 /* HPM_Start("label"); start counting */
19 /* HPM_Stop("label"); stop counting */
20 /* HPM_Print(); print counter values and labels */
21 /*----------------------------------------------------------*/
22 
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
26 
27 #include <spi/kernel_interface.h>
28 #include <common/bgp_personality.h>
29 #include <spi/UPC.h>
30 
31 #define NUM_COUNTERS 256
32 
33 #define NUM_CLOCK_X1 72
34 
35 #define LABEL_LEN 80
36 
37 void HPM_Init(int);
38 void HPM_Start(char *,int);
39 void HPM_Stop(char *,int);
40 void HPM_Print(int, int);
41 
42 #include "timebase.h"
43 
44 int index_from_label(char *);
45 
46 static int initialized = 0;
47 static int code_block = 0;
48 
49 #define MAX_CODE_BLOCKS 20
50 
51 static unsigned long long timebase_in[MAX_CODE_BLOCKS];
52 static unsigned long long timebase_sum[MAX_CODE_BLOCKS];
53 static unsigned long long counter_in[MAX_CODE_BLOCKS][NUM_COUNTERS];
54 static unsigned long long counter_sum[MAX_CODE_BLOCKS][NUM_COUNTERS];
55 static char code_block_label[MAX_CODE_BLOCKS][LABEL_LEN];
56 static int block_starts[MAX_CODE_BLOCKS];
57 static int block_stops[MAX_CODE_BLOCKS];
58 
59 void set_labels(int);
60 
61 static char label[NUM_COUNTERS][LABEL_LEN];
62 
63 
64 static int trigger_method = BGP_UPC_CFG_LEVEL_HIGH;
65 
66 static int counter_mode = 0;
67 
68 struct CounterStruct {
69  int32_t rank; // Rank
70  int32_t core; // Core
71  int32_t upc_number; // UPC Number
72  int32_t number_processes_per_upc; // Number of processes per UPC unit
73  BGP_UPC_Mode_t mode; // User mode
74  int32_t number_of_counters; // Number of counter values returned
75  char location[24]; // Location
76  int64_t elapsed_time; // Elapsed time
77  uint32_t reserved_1; // Reserved for alignment
78  uint32_t reserved_2; // Reserved for alignment
79  int64_t values[256]; // Counter values
80 } counter_data;
81 
82 
83 
84 /*/////////////////////////=*/
85 /* Initialize the counters. */
86 /*/////////////////////////=*/
87 void HPM_Init(int local_rank)
88 {
89  int i, j;
90  int counter_trigger;
91  char * ptr;
92 
93  if (!initialized)
94  {
95  initialized = 1;
96 
97  // set the initial cumulative counter values to zero
98  for (j=0; j<MAX_CODE_BLOCKS; j++)
99  for (i=0; i<NUM_COUNTERS; i++)
100  counter_sum[j][i] = (unsigned long long) 0;
101 
102  for (j=0; j<MAX_CODE_BLOCKS; j++) timebase_sum[j] = (unsigned long long) 0;
103 
104  // keep track of code block starts and stops
105  for (j=0; j<MAX_CODE_BLOCKS; j++)
106  {
107  block_starts[j] = 0;
108  block_stops[j] = 0;
109  }
110 
111  // check to see if a counter mode has been specified
112  ptr = getenv("BGP_COUNTER_MODE");
113 
114  if (ptr == NULL) counter_mode = 0;
115  else counter_mode = atoi(ptr);
116 
117  // force the counter mode to be -1,0,1,2,3
118  if (counter_mode != 0 && counter_mode != 1 &&
119  counter_mode != 2 && counter_mode != 3) counter_mode = 0;
120 
121  ptr = getenv("BGP_COUNTER_TRIGGER");
122 
123  if (ptr == NULL) counter_trigger = BGP_UPC_CFG_LEVEL_HIGH;
124  else
125  {
126  if (strncasecmp(ptr,"edge", 4) == 0) counter_trigger = BGP_UPC_CFG_EDGE_RISE;
127 
128  if (strncasecmp(ptr,"high", 4) == 0) counter_trigger = BGP_UPC_CFG_LEVEL_HIGH;
129  }
130 
131  trigger_method = counter_trigger;
132 
133  // every rank calls BGP_UPC_Initialize()
134  BGP_UPC_Initialize();
135 
136  // only one rank sets the config and zeroes the counters
137  if (local_rank == 0)
138  {
139 /// BGP_UPC_Initialize();
140  BGP_UPC_Stop();
141 
142  if (counter_mode == 0) BGP_UPC_Initialize_Counter_Config(BGP_UPC_MODE_0, counter_trigger);
143  if (counter_mode == 1) BGP_UPC_Initialize_Counter_Config(BGP_UPC_MODE_1, counter_trigger);
144  if (counter_mode == 2) BGP_UPC_Initialize_Counter_Config(BGP_UPC_MODE_2, counter_trigger);
145  if (counter_mode == 3) BGP_UPC_Initialize_Counter_Config(BGP_UPC_MODE_3, counter_trigger);
146 
147  BGP_UPC_Zero_Counter_Values();
148 
149  BGP_UPC_Start(0);
150  }
151  }
152  return;
153 }
154 
155 /*/////////////////////////////////////////////*/
156 /* Start counting for a particular code block. */
157 /*/////////////////////////////////////////////*/
158 void HPM_Start(char * this_label, int local_rank)
159 {
160  int i, j;
161  unsigned long long tb;
162  if( local_rank == 0){
163  tb = timebase();
164 
165  BGP_UPC_Stop();
166  BGP_UPC_Read_Counter_Values(&counter_data, sizeof(struct CounterStruct), BGP_UPC_READ_EXCLUSIVE);
167 
168  j = index_from_label(this_label);
169 
170  block_starts[j] += 1;
171 
172  timebase_in[j] = tb;
173 
174  for (i=0; i<NUM_COUNTERS; i++) counter_in[j][i] = counter_data.values[i];
175 
176  BGP_UPC_Start(0);
177  }
178  return;
179 }
180 
181 
182 
183 /*////////////////////////////////////////////*/
184 /* Stop counting for a particular code block. */
185 /*////////////////////////////////////////////*/
186 void HPM_Stop(char * this_label, int local_rank)
187 {
188  int i, j;
189  unsigned long long tb;
190 
191  if (code_block >= MAX_CODE_BLOCKS) return;
192  if (local_rank == 0)
193  {
194  tb = timebase();
195 
196  BGP_UPC_Stop();
197  BGP_UPC_Read_Counter_Values(&counter_data, sizeof(struct CounterStruct), BGP_UPC_READ_EXCLUSIVE);
198 
199  j = index_from_label(this_label);
200 
201  block_stops[j] += 1;
202 
203  timebase_sum[j] += tb - timebase_in[j];
204 
205  for (i=0; i<NUM_COUNTERS; i++) counter_sum[j][i] += (counter_data.values[i] - counter_in[j][i]);
206 
207  BGP_UPC_Start(0);
208  }
209  return;
210 }
211 
212 
213 
214 /*////////////////////////////////////////////*/
215 /* Print the counter values with event labels */
216 /*////////////////////////////////////////////*/
217 void HPM_Print(int node_id, int local_rank)
218 {
219  int i, j, nblocks;
220  int tx, ty, tz;
221  unsigned long long counts;
222  char trigger[16];
223  char filename[132];
224  FILE * fp;
225 
226  _BGP_Personality_t personality;
227  if(local_rank == 0)
228  {
229  set_labels(counter_mode);
230 
231  Kernel_GetPersonality(&personality, sizeof(personality));
232 
233  tx = personality.Network_Config.Xcoord;
234  ty = personality.Network_Config.Ycoord;
235  tz = personality.Network_Config.Zcoord;
236 
237  sprintf(filename, "hpm_data.%d", node_id);
238  fp = fopen(filename, "w");
239  if (fp == NULL) fp = stderr;
240 
241  if (trigger_method == BGP_UPC_CFG_EDGE_RISE) sprintf(trigger, "edge rise");
242  if (trigger_method == BGP_UPC_CFG_LEVEL_HIGH) sprintf(trigger, "level high");
243 
244  fprintf(fp, "\n");
245  fprintf(fp, "----------------------------------------------------------------------\n");
246  fprintf(fp, "Hardware counter report for BGP node %d, coordinates <%d,%d,%d>.\n", node_id, tx, ty, tz);
247  fprintf(fp, "BGP counter mode = %d, trigger = %s.\n", counter_mode, trigger);
248  fprintf(fp, "----------------------------------------------------------------------\n");
249  if (code_block >= MAX_CODE_BLOCKS) nblocks = MAX_CODE_BLOCKS;
250  else nblocks = code_block;
251 
252  for (j=0; j<nblocks; j++)
253  {
254  if (block_starts[j] == block_stops[j])
255  {
256  fprintf(fp, "%s, call count = %d, cycles = %lld :\n", code_block_label[j], block_starts[j], timebase_sum[j]);
257  for (i=0; i<NUM_COUNTERS; i++)
258  {
259  if (i<NUM_CLOCK_X1) counts = counter_sum[j][i];
260  else counts = counter_sum[j][i] / 2LL;
261  fprintf(fp, "%3d %14lld %s\n", i, counts, label[i]);
262  }
263  fprintf(fp, "\n");
264  }
265  else
266  {
267  fprintf(fp, "mismatch in starts/stops for code block '%s'\n", code_block_label[j]);
268  fprintf(fp, " starts = %d\n", block_starts[j]);
269  fprintf(fp, " stops = %d\n", block_stops[j]);
270  }
271  }
272  fprintf(fp, "\n");
273  }
274  fclose(fp);
275  return;
276 }
277 
278 
279 /*/////////////////////////////////////////==*/
280 /* Find the code-block number from the label.*/
281 /*/////////////////////////////////////////==*/
282 int index_from_label(char * this_label)
283 {
284  int i=0, match;
285  char * ptr;
286 
287  if (code_block < MAX_CODE_BLOCKS)
288  {
289  match = 0;
290  for (i=code_block-1; i>=0; i--)
291  {
292  if (0 == strcmp(code_block_label[i], this_label))
293  {
294  match = 1;
295  break;
296  }
297  }
298 
299  if (match == 0)
300  {
301  i = code_block;
302  ptr = strcpy(code_block_label[i], this_label);
303  if (ptr == NULL) code_block_label[i][0] = '\0';
304  code_block ++;
305  }
306  }
307 
308  return i;
309 
310 }
311 
312 /*////////////////////////////////////////////////////*/
313 /* routine to set labels for each of the BGP counters */
314 /*////////////////////////////////////////////////////*/
315 void set_labels(int mode)
316 {
317 
318  if (mode == 0)
319  {
320  strcpy(label[0], "BGP_PU0_JPIPE_INSTRUCTIONS");
321  strcpy(label[1], "BGP_PU0_JPIPE_ADD_SUB");
322  strcpy(label[2], "BGP_PU0_JPIPE_LOGICAL_OPS");
323  strcpy(label[3], "BGP_PU0_JPIPE_SHROTMK");
324  strcpy(label[4], "BGP_PU0_IPIPE_INSTRUCTIONS");
325  strcpy(label[5], "BGP_PU0_IPIPE_MULT_DIV");
326  strcpy(label[6], "BGP_PU0_IPIPE_ADD_SUB");
327  strcpy(label[7], "BGP_PU0_IPIPE_LOGICAL_OPS");
328  strcpy(label[8], "BGP_PU0_IPIPE_SHROTMK");
329  strcpy(label[9], "BGP_PU0_IPIPE_BRANCHES");
330  strcpy(label[10], "BGP_PU0_IPIPE_TLB_OPS");
331  strcpy(label[11], "BGP_PU0_IPIPE_PROCESS_CONTROL");
332  strcpy(label[12], "BGP_PU0_IPIPE_OTHER");
333  strcpy(label[13], "BGP_PU0_DCACHE_LINEFILLINPROG");
334  strcpy(label[14], "BGP_PU0_ICACHE_LINEFILLINPROG");
335  strcpy(label[15], "BGP_PU0_DCACHE_MISS");
336  strcpy(label[16], "BGP_PU0_DCACHE_HIT");
337  strcpy(label[17], "BGP_PU0_DATA_LOADS");
338  strcpy(label[18], "BGP_PU0_DATA_STORES");
339  strcpy(label[19], "BGP_PU0_DCACHE_OPS");
340  strcpy(label[20], "BGP_PU0_ICACHE_MISS");
341  strcpy(label[21], "BGP_PU0_ICACHE_HIT");
342  strcpy(label[22], "BGP_PU0_FPU_ADD_SUB_1");
343  strcpy(label[23], "BGP_PU0_FPU_MULT_1");
344  strcpy(label[24], "BGP_PU0_FPU_FMA_2");
345  strcpy(label[25], "BGP_PU0_FPU_DIV_1");
346  strcpy(label[26], "BGP_PU0_FPU_OTHER_NON_STORAGE_OPS");
347  strcpy(label[27], "BGP_PU0_FPU_ADD_SUB_2");
348  strcpy(label[28], "BGP_PU0_FPU_MULT_2");
349  strcpy(label[29], "BGP_PU0_FPU_FMA_4");
350  strcpy(label[30], "BGP_PU0_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS");
351  strcpy(label[31], "BGP_PU0_FPU_QUADWORD_LOADS");
352  strcpy(label[32], "BGP_PU0_FPU_OTHER_LOADS");
353  strcpy(label[33], "BGP_PU0_FPU_QUADWORD_STORES");
354  strcpy(label[34], "BGP_PU0_FPU_OTHER_STORES");
355  strcpy(label[35], "BGP_PU1_JPIPE_INSTRUCTIONS");
356  strcpy(label[36], "BGP_PU1_JPIPE_ADD_SUB");
357  strcpy(label[37], "BGP_PU1_JPIPE_LOGICAL_OPS");
358  strcpy(label[38], "BGP_PU1_JPIPE_SHROTMK");
359  strcpy(label[39], "BGP_PU1_IPIPE_INSTRUCTIONS");
360  strcpy(label[40], "BGP_PU1_IPIPE_MULT_DIV");
361  strcpy(label[41], "BGP_PU1_IPIPE_ADD_SUB");
362  strcpy(label[42], "BGP_PU1_IPIPE_LOGICAL_OPS");
363  strcpy(label[43], "BGP_PU1_IPIPE_SHROTMK");
364  strcpy(label[44], "BGP_PU1_IPIPE_BRANCHES");
365  strcpy(label[45], "BGP_PU1_IPIPE_TLB_OPS");
366  strcpy(label[46], "BGP_PU1_IPIPE_PROCESS_CONTROL");
367  strcpy(label[47], "BGP_PU1_IPIPE_OTHER");
368  strcpy(label[48], "BGP_PU1_DCACHE_LINEFILLINPROG");
369  strcpy(label[49], "BGP_PU1_ICACHE_LINEFILLINPROG");
370  strcpy(label[50], "BGP_PU1_DCACHE_MISS");
371  strcpy(label[51], "BGP_PU1_DCACHE_HIT");
372  strcpy(label[52], "BGP_PU1_DATA_LOADS");
373  strcpy(label[53], "BGP_PU1_DATA_STORES");
374  strcpy(label[54], "BGP_PU1_DCACHE_OPS");
375  strcpy(label[55], "BGP_PU1_ICACHE_MISS");
376  strcpy(label[56], "BGP_PU1_ICACHE_HIT");
377  strcpy(label[57], "BGP_PU1_FPU_ADD_SUB_1");
378  strcpy(label[58], "BGP_PU1_FPU_MULT_1");
379  strcpy(label[59], "BGP_PU1_FPU_FMA_2");
380  strcpy(label[60], "BGP_PU1_FPU_DIV_1");
381  strcpy(label[61], "BGP_PU1_FPU_OTHER_NON_STORAGE_OPS");
382  strcpy(label[62], "BGP_PU1_FPU_ADD_SUB_2");
383  strcpy(label[63], "BGP_PU1_FPU_MULT_2");
384  strcpy(label[64], "BGP_PU1_FPU_FMA_4");
385  strcpy(label[65], "BGP_PU1_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS");
386  strcpy(label[66], "BGP_PU1_FPU_QUADWORD_LOADS");
387  strcpy(label[67], "BGP_PU1_FPU_OTHER_LOADS");
388  strcpy(label[68], "BGP_PU1_FPU_QUADWORD_STORES");
389  strcpy(label[69], "BGP_PU1_FPU_OTHER_STORES");
390  strcpy(label[70], "BGP_PU0_L1_INVALIDATION_REQUESTS");
391  strcpy(label[71], "BGP_PU1_L1_INVALIDATION_REQUESTS");
392  strcpy(label[72], "BGP_PU0_L2_VALID_PREFETCH_REQUESTS");
393  strcpy(label[73], "BGP_PU0_L2_PREFETCH_HITS_IN_FILTER");
394  strcpy(label[74], "BGP_PU0_L2_PREFETCH_HITS_IN_STREAM");
395  strcpy(label[75], "BGP_PU0_L2_CYCLES_PREFETCH_PENDING");
396  strcpy(label[76], "BGP_PU0_L2_PAGE_ALREADY_IN_L2");
397  strcpy(label[77], "BGP_PU0_L2_PREFETCH_SNOOP_HIT_SAME_CORE");
398  strcpy(label[78], "BGP_PU0_L2_PREFETCH_SNOOP_HIT_OTHER_CORE");
399  strcpy(label[79], "BGP_PU0_L2_PREFETCH_SNOOP_HIT_PLB");
400  strcpy(label[80], "BGP_PU0_L2_CYCLES_READ_REQUEST_PENDING");
401  strcpy(label[81], "BGP_PU0_L2_READ_REQUESTS");
402  strcpy(label[82], "BGP_PU0_L2_DEVBUS_READ_REQUESTS");
403  strcpy(label[83], "BGP_PU0_L2_L3_READ_REQUESTS");
404  strcpy(label[84], "BGP_PU0_L2_NETBUS_READ_REQUESTS");
405  strcpy(label[85], "BGP_PU0_L2_BLIND_DEV_READ_REQUESTS");
406  strcpy(label[86], "BGP_PU0_L2_PREFETCHABLE_REQUESTS");
407  strcpy(label[87], "BGP_PU0_L2_HIT");
408  strcpy(label[88], "BGP_PU0_L2_SAME_CORE_SNOOPS");
409  strcpy(label[89], "BGP_PU0_L2_OTHER_CORE_SNOOPS");
410  strcpy(label[90], "BGP_PU0_L2_OTHER_DP_PU0_SNOOPS");
411  strcpy(label[91], "BGP_PU0_L2_OTHER_DP_PU1_SNOOPS");
412  strcpy(label[92], "BGP_RESERVED");
413  strcpy(label[93], "BGP_RESERVED");
414  strcpy(label[94], "BGP_RESERVED");
415  strcpy(label[95], "BGP_RESERVED");
416  strcpy(label[96], "BGP_RESERVED");
417  strcpy(label[97], "BGP_RESERVED");
418  strcpy(label[98], "BGP_RESERVED");
419  strcpy(label[99], "BGP_RESERVED");
420  strcpy(label[100], "BGP_RESERVED");
421  strcpy(label[101], "BGP_PU0_L2_MEMORY_WRITES");
422  strcpy(label[102], "BGP_PU0_L2_NETWORK_WRITES");
423  strcpy(label[103], "BGP_PU0_L2_DEVBUS_WRITES");
424  strcpy(label[104], "BGP_PU1_L2_VALID_PREFETCH_REQUESTS");
425  strcpy(label[105], "BGP_PU1_L2_PREFETCH_HITS_IN_FILTER");
426  strcpy(label[106], "BGP_PU1_L2_PREFETCH_HITS_IN_STREAM");
427  strcpy(label[107], "BGP_PU1_L2_CYCLES_PREFETCH_PENDING");
428  strcpy(label[108], "BGP_PU1_L2_PAGE_ALREADY_IN_L2");
429  strcpy(label[109], "BGP_PU1_L2_PREFETCH_SNOOP_HIT_SAME_CORE");
430  strcpy(label[110], "BGP_PU1_L2_PREFETCH_SNOOP_HIT_OTHER_CORE");
431  strcpy(label[111], "BGP_PU1_L2_PREFETCH_SNOOP_HIT_PLB");
432  strcpy(label[112], "BGP_PU1_L2_CYCLES_READ_REQUEST_PENDING");
433  strcpy(label[113], "BGP_PU1_L2_READ_REQUESTS");
434  strcpy(label[114], "BGP_PU1_L2_DEVBUS_READ_REQUESTS");
435  strcpy(label[115], "BGP_PU1_L2_L3_READ_REQUESTS");
436  strcpy(label[116], "BGP_PU1_L2_NETBUS_READ_REQUESTS");
437  strcpy(label[117], "BGP_PU1_L2_BLIND_DEV_READ_REQUESTS");
438  strcpy(label[118], "BGP_PU1_L2_PREFETCHABLE_REQUESTS");
439  strcpy(label[119], "BGP_PU1_L2_HIT");
440  strcpy(label[120], "BGP_PU1_L2_SAME_CORE_SNOOPS");
441  strcpy(label[121], "BGP_PU1_L2_OTHER_CORE_SNOOPS");
442  strcpy(label[122], "BGP_PU1_L2_OTHER_DP_PU0_SNOOPS");
443  strcpy(label[123], "BGP_PU1_L2_OTHER_DP_PU1_SNOOPS");
444  strcpy(label[124], "BGP_RESERVED");
445  strcpy(label[125], "BGP_RESERVED");
446  strcpy(label[126], "BGP_RESERVED");
447  strcpy(label[127], "BGP_RESERVED");
448  strcpy(label[128], "BGP_RESERVED");
449  strcpy(label[129], "BGP_RESERVED");
450  strcpy(label[130], "BGP_RESERVED");
451  strcpy(label[131], "BGP_RESERVED");
452  strcpy(label[132], "BGP_RESERVED");
453  strcpy(label[133], "BGP_PU1_L2_MEMORY_WRITES");
454  strcpy(label[134], "BGP_PU1_L2_NETWORK_WRITES");
455  strcpy(label[135], "BGP_PU1_L2_DEVBUS_WRITES");
456  strcpy(label[136], "BGP_L3_M0_RD0_SINGLE_LINE_DELIVERED_L2");
457  strcpy(label[137], "BGP_L3_M0_RD0_BURST_DELIVERED_L2");
458  strcpy(label[138], "BGP_L3_M0_RD0_READ_RETURN_COLLISION");
459  strcpy(label[139], "BGP_L3_M0_RD0_DIR0_HIT_OR_INFLIGHT");
460  strcpy(label[140], "BGP_L3_M0_RD0_DIR0_MISS_OR_LOCKDOWN");
461  strcpy(label[141], "BGP_L3_M0_RD0_DIR1_HIT_OR_INFLIGHT");
462  strcpy(label[142], "BGP_L3_M0_RD0_DIR1_MISS_OR_LOCKDOWN");
463  strcpy(label[143], "BGP_L3_M0_RD1_SINGLE_LINE_DELIVERED_L2");
464  strcpy(label[144], "BGP_L3_M0_RD1_BURST_DELIVERED_L2");
465  strcpy(label[145], "BGP_L3_M0_RD1_READ_RETURN_COLLISION");
466  strcpy(label[146], "BGP_L3_M0_RD1_DIR0_HIT_OR_INFLIGHT");
467  strcpy(label[147], "BGP_L3_M0_RD1_DIR0_MISS_OR_LOCKDOWN");
468  strcpy(label[148], "BGP_L3_M0_RD1_DIR1_HIT_OR_INFLIGHT");
469  strcpy(label[149], "BGP_L3_M0_RD1_DIR1_MISS_OR_LOCKDOWN");
470  strcpy(label[150], "BGP_L3_M0_DIR0_LOOKUPS");
471  strcpy(label[151], "BGP_L3_M0_DIR0_CYCLES_REQUESTS_NOT_TAKEN");
472  strcpy(label[152], "BGP_L3_M0_DIR1_LOOKUPS");
473  strcpy(label[153], "BGP_L3_M0_DIR1_CYCLES_REQUESTS_NOT_TAKEN");
474  strcpy(label[154], "BGP_L3_M0_MH_DDR_STORES");
475  strcpy(label[155], "BGP_L3_M0_MH_DDR_FETCHES");
476  strcpy(label[156], "BGP_L3_M1_RD0_SINGLE_LINE_DELIVERED_L2");
477  strcpy(label[157], "BGP_L3_M1_RD0_BURST_DELIVERED_L2");
478  strcpy(label[158], "BGP_L3_M1_RD0_READ_RETURN_COLLISION");
479  strcpy(label[159], "BGP_L3_M1_RD0_DIR0_HIT_OR_INFLIGHT");
480  strcpy(label[160], "BGP_L3_M1_RD0_DIR0_MISS_OR_LOCKDOWN");
481  strcpy(label[161], "BGP_L3_M1_RD0_DIR1_HIT_OR_INFLIGHT");
482  strcpy(label[162], "BGP_L3_M1_RD0_DIR1_MISS_OR_LOCKDOWN");
483  strcpy(label[163], "BGP_L3_M1_RD1_SINGLE_LINE_DELIVERED_L2");
484  strcpy(label[164], "BGP_L3_M1_RD1_BURST_DELIVERED_L2");
485  strcpy(label[165], "BGP_L3_M1_RD1_READ_RETURN_COLLISION");
486  strcpy(label[166], "BGP_L3_M1_RD1_DIR0_HIT_OR_INFLIGHT");
487  strcpy(label[167], "BGP_L3_M1_RD1_DIR0_MISS_OR_LOCKDOWN");
488  strcpy(label[168], "BGP_L3_M1_RD1_DIR1_HIT_OR_INFLIGHT");
489  strcpy(label[169], "BGP_L3_M1_RD1_DIR1_MISS_OR_LOCKDOWN");
490  strcpy(label[170], "BGP_L3_M1_DIR0_LOOKUPS");
491  strcpy(label[171], "BGP_L3_M1_DIR0_CYCLES_REQUESTS_NOT_TAKEN");
492  strcpy(label[172], "BGP_L3_M1_DIR1_LOOKUPS");
493  strcpy(label[173], "BGP_L3_M1_DIR1_CYCLES_REQUESTS_NOT_TAKEN");
494  strcpy(label[174], "BGP_L3_M1_MH_DDR_STORES");
495  strcpy(label[175], "BGP_L3_M1_MH_DDR_FETCHES");
496  strcpy(label[176], "BGP_PU0_SNOOP_PORT0_REMOTE_SOURCE_REQUESTS");
497  strcpy(label[177], "BGP_PU0_SNOOP_PORT1_REMOTE_SOURCE_REQUESTS");
498  strcpy(label[178], "BGP_PU0_SNOOP_PORT2_REMOTE_SOURCE_REQUESTS");
499  strcpy(label[179], "BGP_PU0_SNOOP_PORT3_REMOTE_SOURCE_REQUESTS");
500  strcpy(label[180], "BGP_PU0_SNOOP_PORT0_REJECTED_REQUESTS");
501  strcpy(label[181], "BGP_PU0_SNOOP_PORT1_REJECTED_REQUESTS");
502  strcpy(label[182], "BGP_PU0_SNOOP_PORT2_REJECTED_REQUESTS");
503  strcpy(label[183], "BGP_PU0_SNOOP_PORT3_REJECTED_REQUESTS");
504  strcpy(label[184], "BGP_PU0_SNOOP_L1_CACHE_WRAP");
505  strcpy(label[185], "BGP_PU1_SNOOP_PORT0_REMOTE_SOURCE_REQUESTS");
506  strcpy(label[186], "BGP_PU1_SNOOP_PORT1_REMOTE_SOURCE_REQUESTS");
507  strcpy(label[187], "BGP_PU1_SNOOP_PORT2_REMOTE_SOURCE_REQUESTS");
508  strcpy(label[188], "BGP_PU1_SNOOP_PORT3_REMOTE_SOURCE_REQUESTS");
509  strcpy(label[189], "BGP_PU1_SNOOP_PORT0_REJECTED_REQUESTS");
510  strcpy(label[190], "BGP_PU1_SNOOP_PORT1_REJECTED_REQUESTS");
511  strcpy(label[191], "BGP_PU1_SNOOP_PORT2_REJECTED_REQUESTS");
512  strcpy(label[192], "BGP_PU1_SNOOP_PORT3_REJECTED_REQUESTS");
513  strcpy(label[193], "BGP_PU1_SNOOP_L1_CACHE_WRAP");
514  strcpy(label[194], "BGP_TORUS_XP_PACKETS");
515  strcpy(label[195], "BGP_TORUS_XP_32BCHUNKS");
516  strcpy(label[196], "BGP_TORUS_XM_PACKETS");
517  strcpy(label[197], "BGP_TORUS_XM_32BCHUNKS");
518  strcpy(label[198], "BGP_TORUS_YP_PACKETS");
519  strcpy(label[199], "BGP_TORUS_YP_32BCHUNKS");
520  strcpy(label[200], "BGP_TORUS_YM_PACKETS");
521  strcpy(label[201], "BGP_TORUS_YM_32BCHUNKS");
522  strcpy(label[202], "BGP_TORUS_ZP_PACKETS");
523  strcpy(label[203], "BGP_TORUS_ZP_32BCHUNKS");
524  strcpy(label[204], "BGP_TORUS_ZM_PACKETS");
525  strcpy(label[205], "BGP_TORUS_ZM_32BCHUNKS");
526  strcpy(label[206], "BGP_DMA_PACKETS_INJECTED");
527  strcpy(label[207], "BGP_DMA_DESCRIPTORS_READ_FROM_L3");
528  strcpy(label[208], "BGP_DMA_FIFO_PACKETS_RECEIVED");
529  strcpy(label[209], "BGP_DMA_COUNTER_PACKETS_RECEIVED");
530  strcpy(label[210], "BGP_DMA_REMOTE_GET_PACKETS_RECEIVED");
531  strcpy(label[211], "BGP_DMA_IDPU_READ_REQUESTS_TO_L3");
532  strcpy(label[212], "BGP_DMA_READ_VALID_RETURNED");
533  strcpy(label[213], "BGP_DMA_ACKED_READ_REQUESTS");
534  strcpy(label[214], "BGP_DMA_CYCLES_RDPU_WRITE_ACTIVE");
535  strcpy(label[215], "BGP_DMA_WRITE_REQUESTS_TO_L3");
536  strcpy(label[216], "BGP_RESERVED");
537  strcpy(label[217], "BGP_RESERVED");
538  strcpy(label[218], "BGP_RESERVED");
539  strcpy(label[219], "BGP_RESERVED");
540  strcpy(label[220], "BGP_RESERVED");
541  strcpy(label[221], "BGP_RESERVED");
542  strcpy(label[222], "BGP_COL_AC_CH2_VC0_MATURE");
543  strcpy(label[223], "BGP_COL_AC_CH1_VC0_MATURE");
544  strcpy(label[224], "BGP_COL_AC_CH0_VC0_MATURE");
545  strcpy(label[225], "BGP_COL_AC_INJECT_VC0_MATURE");
546  strcpy(label[226], "BGP_COL_AC_CH2_VC1_MATURE");
547  strcpy(label[227], "BGP_COL_AC_CH1_VC1_MATURE");
548  strcpy(label[228], "BGP_COL_AC_CH0_VC1_MATURE");
549  strcpy(label[229], "BGP_COL_AC_INJECT_VC1_MATURE");
550  strcpy(label[230], "BGP_COL_AC_PENDING_REQUESTS");
551  strcpy(label[231], "BGP_COL_AC_WAITING_REQUESTS");
552  strcpy(label[232], "BGP_COL_AR2_PACKET_TAKEN");
553  strcpy(label[233], "BGP_COL_AR1_PACKET_TAKEN");
554  strcpy(label[234], "BGP_COL_AR0_PACKET_TAKEN");
555  strcpy(label[235], "BGP_COL_ALC_PACKET_TAKEN");
556  strcpy(label[236], "BGP_COL_AR0_VC0_DATA_PACKETS_RECEIVED");
557  strcpy(label[237], "BGP_COL_AR0_VC1_DATA_PACKETS_RECEIVED");
558  strcpy(label[238], "BGP_COL_AR1_VC0_DATA_PACKETS_RECEIVED");
559  strcpy(label[239], "BGP_COL_AR1_VC1_DATA_PACKETS_RECEIVED");
560  strcpy(label[240], "BGP_COL_AR2_VC0_DATA_PACKETS_RECEIVED");
561  strcpy(label[241], "BGP_COL_AR2_VC1_DATA_PACKETS_RECEIVED");
562  strcpy(label[242], "BGP_COL_AS0_VC0_DATA_PACKETS_SENT");
563  strcpy(label[243], "BGP_COL_AS0_VC1_DATA_PACKETS_SENT");
564  strcpy(label[244], "BGP_COL_AS1_VC0_DATA_PACKETS_SENT");
565  strcpy(label[245], "BGP_COL_AS1_VC1_DATA_PACKETS_SENT");
566  strcpy(label[246], "BGP_COL_AS2_VC0_DATA_PACKETS_SENT");
567  strcpy(label[247], "BGP_COL_AS2_VC1_DATA_PACKETS_SENT");
568  strcpy(label[248], "BGP_COL_INJECT_VC0_HEADER");
569  strcpy(label[249], "BGP_COL_INJECT_VC1_HEADER");
570  strcpy(label[250], "BGP_COL_RECEPTION_VC0_PACKET_ADDED");
571  strcpy(label[251], "BGP_COL_RECEPTION_VC1_PACKET_ADDED");
572  strcpy(label[252], "BGP_IC_TIMESTAMP");
573  strcpy(label[253], "BGP_RESERVED");
574  strcpy(label[254], "BGP_RESERVED");
575  strcpy(label[255], "BGP_MISC_ELAPSED_TIME");
576  }
577 
578  else if (mode == 1)
579  {
580  strcpy(label[0], "BGP_PU2_JPIPE_INSTRUCTIONS");
581  strcpy(label[1], "BGP_PU2_JPIPE_ADD_SUB");
582  strcpy(label[2], "BGP_PU2_JPIPE_LOGICAL_OPS");
583  strcpy(label[3], "BGP_PU2_JPIPE_SHROTMK");
584  strcpy(label[4], "BGP_PU2_IPIPE_INSTRUCTIONS");
585  strcpy(label[5], "BGP_PU2_IPIPE_MULT_DIV");
586  strcpy(label[6], "BGP_PU2_IPIPE_ADD_SUB");
587  strcpy(label[7], "BGP_PU2_IPIPE_LOGICAL_OPS");
588  strcpy(label[8], "BGP_PU2_IPIPE_SHROTMK");
589  strcpy(label[9], "BGP_PU2_IPIPE_BRANCHES");
590  strcpy(label[10], "BGP_PU2_IPIPE_TLB_OPS");
591  strcpy(label[11], "BGP_PU2_IPIPE_PROCESS_CONTROL");
592  strcpy(label[12], "BGP_PU2_IPIPE_OTHER");
593  strcpy(label[13], "BGP_PU2_DCACHE_LINEFILLINPROG");
594  strcpy(label[14], "BGP_PU2_ICACHE_LINEFILLINPROG");
595  strcpy(label[15], "BGP_PU2_DCACHE_MISS");
596  strcpy(label[16], "BGP_PU2_DCACHE_HIT");
597  strcpy(label[17], "BGP_PU2_DATA_LOADS");
598  strcpy(label[18], "BGP_PU2_DATA_STORES");
599  strcpy(label[19], "BGP_PU2_DCACHE_OPS");
600  strcpy(label[20], "BGP_PU2_ICACHE_MISS");
601  strcpy(label[21], "BGP_PU2_ICACHE_HIT");
602  strcpy(label[22], "BGP_PU2_FPU_ADD_SUB_1");
603  strcpy(label[23], "BGP_PU2_FPU_MULT_1");
604  strcpy(label[24], "BGP_PU2_FPU_FMA_2");
605  strcpy(label[25], "BGP_PU2_FPU_DIV_1");
606  strcpy(label[26], "BGP_PU2_FPU_OTHER_NON_STORAGE_OPS");
607  strcpy(label[27], "BGP_PU2_FPU_ADD_SUB_2");
608  strcpy(label[28], "BGP_PU2_FPU_MULT_2");
609  strcpy(label[29], "BGP_PU2_FPU_FMA_4");
610  strcpy(label[30], "BGP_PU2_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS");
611  strcpy(label[31], "BGP_PU2_FPU_QUADWORD_LOADS");
612  strcpy(label[32], "BGP_PU2_FPU_OTHER_LOADS");
613  strcpy(label[33], "BGP_PU2_FPU_QUADWORD_STORES");
614  strcpy(label[34], "BGP_PU2_FPU_OTHER_STORES");
615  strcpy(label[35], "BGP_PU3_JPIPE_INSTRUCTIONS");
616  strcpy(label[36], "BGP_PU3_JPIPE_ADD_SUB");
617  strcpy(label[37], "BGP_PU3_JPIPE_LOGICAL_OPS");
618  strcpy(label[38], "BGP_PU3_JPIPE_SHROTMK");
619  strcpy(label[39], "BGP_PU3_IPIPE_INSTRUCTIONS");
620  strcpy(label[40], "BGP_PU3_IPIPE_MULT_DIV");
621  strcpy(label[41], "BGP_PU3_IPIPE_ADD_SUB");
622  strcpy(label[42], "BGP_PU3_IPIPE_LOGICAL_OPS");
623  strcpy(label[43], "BGP_PU3_IPIPE_SHROTMK");
624  strcpy(label[44], "BGP_PU3_IPIPE_BRANCHES");
625  strcpy(label[45], "BGP_PU3_IPIPE_TLB_OPS");
626  strcpy(label[46], "BGP_PU3_IPIPE_PROCESS_CONTROL");
627  strcpy(label[47], "BGP_PU3_IPIPE_OTHER");
628  strcpy(label[48], "BGP_PU3_DCACHE_LINEFILLINPROG");
629  strcpy(label[49], "BGP_PU3_ICACHE_LINEFILLINPROG");
630  strcpy(label[50], "BGP_PU3_DCACHE_MISS");
631  strcpy(label[51], "BGP_PU3_DCACHE_HIT");
632  strcpy(label[52], "BGP_PU3_DATA_LOADS");
633  strcpy(label[53], "BGP_PU3_DATA_STORES");
634  strcpy(label[54], "BGP_PU3_DCACHE_OPS");
635  strcpy(label[55], "BGP_PU3_ICACHE_MISS");
636  strcpy(label[56], "BGP_PU3_ICACHE_HIT");
637  strcpy(label[57], "BGP_PU3_FPU_ADD_SUB_1");
638  strcpy(label[58], "BGP_PU3_FPU_MULT_1");
639  strcpy(label[59], "BGP_PU3_FPU_FMA_2");
640  strcpy(label[60], "BGP_PU3_FPU_DIV_1");
641  strcpy(label[61], "BGP_PU3_FPU_OTHER_NON_STORAGE_OPS");
642  strcpy(label[62], "BGP_PU3_FPU_ADD_SUB_2");
643  strcpy(label[63], "BGP_PU3_FPU_MULT_2");
644  strcpy(label[64], "BGP_PU3_FPU_FMA_4");
645  strcpy(label[65], "BGP_PU3_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS");
646  strcpy(label[66], "BGP_PU3_FPU_QUADWORD_LOADS");
647  strcpy(label[67], "BGP_PU3_FPU_OTHER_LOADS");
648  strcpy(label[68], "BGP_PU3_FPU_QUADWORD_STORES");
649  strcpy(label[69], "BGP_PU3_FPU_OTHER_STORES");
650  strcpy(label[70], "BGP_PU2_L1_INVALIDATION_REQUESTS");
651  strcpy(label[71], "BGP_PU3_L1_INVALIDATION_REQUESTS");
652  strcpy(label[72], "BGP_COL_AC_CH2_VC0_MATURE_UM1");
653  strcpy(label[73], "BGP_COL_AC_CH1_VC0_MATURE_UM1");
654  strcpy(label[74], "BGP_COL_AC_CH0_VC0_MATURE_UM1");
655  strcpy(label[75], "BGP_COL_AC_INJECT_VC0_MATURE_UM1");
656  strcpy(label[76], "BGP_COL_AC_CH2_VC1_MATURE_UM1");
657  strcpy(label[77], "BGP_COL_AC_CH1_VC1_MATURE_UM1");
658  strcpy(label[78], "BGP_COL_AC_CH0_VC1_MATURE_UM1");
659  strcpy(label[79], "BGP_COL_AC_INJECT_VC1_MATURE_UM1");
660  strcpy(label[80], "BGP_COL_AR0_VC0_EMPTY_PACKET");
661  strcpy(label[81], "BGP_COL_AR0_VC1_EMPTY_PACKET");
662  strcpy(label[82], "BGP_COL_AR0_IDLE_PACKET");
663  strcpy(label[83], "BGP_COL_AR0_BAD_PACKET_MARKER");
664  strcpy(label[84], "BGP_COL_AR0_VC0_CUT_THROUGH");
665  strcpy(label[85], "BGP_COL_AR0_VC1_CUT_THROUGH");
666  strcpy(label[86], "BGP_COL_AR0_HEADER_PARITY_ERROR");
667  strcpy(label[87], "BGP_COL_AR0_UNEXPECTED_HEADER_ERROR");
668  strcpy(label[88], "BGP_COL_AR0_RESYNC");
669  strcpy(label[89], "BGP_COL_AR1_VC0_EMPTY_PACKET");
670  strcpy(label[90], "BGP_COL_AR1_VC1_EMPTY_PACKET");
671  strcpy(label[91], "BGP_COL_AR1_IDLE_PACKET");
672  strcpy(label[92], "BGP_COL_AR1_BAD_PACKET_MARKER");
673  strcpy(label[93], "BGP_COL_AR1_VC0_CUT_THROUGH");
674  strcpy(label[94], "BGP_COL_AR1_VC1_CUT_THROUGH");
675  strcpy(label[95], "BGP_COL_AR1_HEADER_PARITY_ERROR");
676  strcpy(label[96], "BGP_COL_AR1_UNEXPECTED_HEADER_ERROR");
677  strcpy(label[97], "BGP_COL_AR1_RESYNC");
678  strcpy(label[98], "BGP_COL_AR2_VC0_EMPTY_PACKET");
679  strcpy(label[99], "BGP_COL_AR2_VC1_EMPTY_PACKET");
680  strcpy(label[100], "BGP_COL_AR2_IDLE_PACKET");
681  strcpy(label[101], "BGP_COL_AR2_BAD_PACKET_MARKER");
682  strcpy(label[102], "BGP_COL_AR2_VC0_CUT_THROUGH");
683  strcpy(label[103], "BGP_COL_AR2_VC1_CUT_THROUGH");
684  strcpy(label[104], "BGP_COL_AR2_HEADER_PARITY_ERROR");
685  strcpy(label[105], "BGP_COL_AR2_UNEXPECTED_HEADER_ERROR");
686  strcpy(label[106], "BGP_COL_AR2_RESYNC");
687  strcpy(label[107], "BGP_COL_AS0_VC0_CUT_THROUGH");
688  strcpy(label[108], "BGP_COL_AS0_VC1_CUT_THROUGH");
689  strcpy(label[109], "BGP_COL_AS0_VC0_PACKETS_SENT");
690  strcpy(label[110], "BGP_COL_AS0_VC1_PACKETS_SENT");
691  strcpy(label[111], "BGP_COL_AS0_IDLE_PACKETS_SENT");
692  strcpy(label[112], "BGP_COL_AS1_VC0_CUT_THROUGH");
693  strcpy(label[113], "BGP_COL_AS1_VC1_CUT_THROUGH");
694  strcpy(label[114], "BGP_COL_AS1_VC0_PACKETS_SENT");
695  strcpy(label[115], "BGP_COL_AS1_VC1_PACKETS_SENT");
696  strcpy(label[116], "BGP_COL_AS1_IDLE_PACKETS_SENT");
697  strcpy(label[117], "BGP_COL_AS2_VC0_CUT_THROUGH");
698  strcpy(label[118], "BGP_COL_AS2_VC1_CUT_THROUGH");
699  strcpy(label[119], "BGP_COL_AS2_VC0_PACKETS_SENT");
700  strcpy(label[120], "BGP_COL_AS2_VC1_PACKETS_SENT");
701  strcpy(label[121], "BGP_COL_AS2_IDLE_PACKETS_SENT");
702  strcpy(label[122], "BGP_COL_INJECT_VC0_PAYLOAD_ADDED");
703  strcpy(label[123], "BGP_COL_INJECT_VC1_PAYLOAD_ADDED");
704  strcpy(label[124], "BGP_COL_INJECT_VC0_PACKET_TAKEN");
705  strcpy(label[125], "BGP_COL_INJECT_VC1_PACKET_TAKEN");
706  strcpy(label[126], "BGP_COL_RECEPTION_VC0_HEADER_TAKEN");
707  strcpy(label[127], "BGP_COL_RECEPTION_VC1_HEADER_TAKEN");
708  strcpy(label[128], "BGP_COL_RECEPTION_VC0_PAYLOAD_TAKEN");
709  strcpy(label[129], "BGP_COL_RECEPTION_VC1_PAYLOAD_TAKEN");
710  strcpy(label[130], "BGP_COL_RECEPTION_VC0_PACKET_DISCARDED");
711  strcpy(label[131], "BGP_COL_RECEPTION_VC1_PACKET_DISCARDED");
712  strcpy(label[132], "BGP_PU2_L2_VALID_PREFETCH_REQUESTS");
713  strcpy(label[133], "BGP_PU2_L2_PREFETCH_HITS_IN_FILTER");
714  strcpy(label[134], "BGP_PU2_L2_PREFETCH_HITS_IN_STREAM");
715  strcpy(label[135], "BGP_PU2_L2_CYCLES_PREFETCH_PENDING");
716  strcpy(label[136], "BGP_PU2_L2_PAGE_ALREADY_IN_L2");
717  strcpy(label[137], "BGP_PU2_L2_PREFETCH_SNOOP_HIT_SAME_CORE");
718  strcpy(label[138], "BGP_PU2_L2_PREFETCH_SNOOP_HIT_OTHER_CORE");
719  strcpy(label[139], "BGP_PU2_L2_PREFETCH_SNOOP_HIT_PLB");
720  strcpy(label[140], "BGP_PU2_L2_CYCLES_READ_REQUEST_PENDING");
721  strcpy(label[141], "BGP_PU2_L2_READ_REQUESTS");
722  strcpy(label[142], "BGP_PU2_L2_DEVBUS_READ_REQUESTS");
723  strcpy(label[143], "BGP_PU2_L2_L3_READ_REQUESTS");
724  strcpy(label[144], "BGP_PU2_L2_NETBUS_READ_REQUESTS");
725  strcpy(label[145], "BGP_PU2_L2_BLIND_DEV_READ_REQUESTS");
726  strcpy(label[146], "BGP_PU2_L2_PREFETCHABLE_REQUESTS");
727  strcpy(label[147], "BGP_PU2_L2_HIT");
728  strcpy(label[148], "BGP_PU2_L2_SAME_CORE_SNOOPS");
729  strcpy(label[149], "BGP_PU2_L2_OTHER_CORE_SNOOPS");
730  strcpy(label[150], "BGP_PU2_L2_OTHER_DP_PU0_SNOOPS");
731  strcpy(label[151], "BGP_PU2_L2_OTHER_DP_PU1_SNOOPS");
732  strcpy(label[152], "BGP_RESERVED");
733  strcpy(label[153], "BGP_RESERVED");
734  strcpy(label[154], "BGP_RESERVED");
735  strcpy(label[155], "BGP_RESERVED");
736  strcpy(label[156], "BGP_RESERVED");
737  strcpy(label[157], "BGP_RESERVED");
738  strcpy(label[158], "BGP_RESERVED");
739  strcpy(label[159], "BGP_RESERVED");
740  strcpy(label[160], "BGP_RESERVED");
741  strcpy(label[161], "BGP_PU2_L2_MEMORY_WRITES");
742  strcpy(label[162], "BGP_PU2_L2_NETWORK_WRITES");
743  strcpy(label[163], "BGP_PU2_L2_DEVBUS_WRITES");
744  strcpy(label[164], "BGP_PU3_L2_VALID_PREFETCH_REQUESTS");
745  strcpy(label[165], "BGP_PU3_L2_PREFETCH_HITS_IN_FILTER");
746  strcpy(label[166], "BGP_PU3_L2_PREFETCH_HITS_IN_STREAM");
747  strcpy(label[167], "BGP_PU3_L2_CYCLES_PREFETCH_PENDING");
748  strcpy(label[168], "BGP_PU3_L2_PAGE_ALREADY_IN_L2");
749  strcpy(label[169], "BGP_PU3_L2_PREFETCH_SNOOP_HIT_SAME_CORE");
750  strcpy(label[170], "BGP_PU3_L2_PREFETCH_SNOOP_HIT_OTHER_CORE");
751  strcpy(label[171], "BGP_PU3_L2_PREFETCH_SNOOP_HIT_PLB");
752  strcpy(label[172], "BGP_PU3_L2_CYCLES_READ_REQUEST_PENDING");
753  strcpy(label[173], "BGP_PU3_L2_READ_REQUESTS");
754  strcpy(label[174], "BGP_PU3_L2_DEVBUS_READ_REQUESTS");
755  strcpy(label[175], "BGP_PU3_L2_L3_READ_REQUESTS");
756  strcpy(label[176], "BGP_PU3_L2_NETBUS_READ_REQUESTS");
757  strcpy(label[177], "BGP_PU3_L2_BLIND_DEV_READ_REQUESTS");
758  strcpy(label[178], "BGP_PU3_L2_PREFETCHABLE_REQUESTS");
759  strcpy(label[179], "BGP_PU3_L2_HIT");
760  strcpy(label[180], "BGP_PU3_L2_SAME_CORE_SNOOPS");
761  strcpy(label[181], "BGP_PU3_L2_OTHER_CORE_SNOOPS");
762  strcpy(label[182], "BGP_PU3_L2_OTHER_DP_PU0_SNOOPS");
763  strcpy(label[183], "BGP_PU3_L2_OTHER_DP_PU1_SNOOPS");
764  strcpy(label[184], "BGP_Reserved");
765  strcpy(label[185], "BGP_Reserved");
766  strcpy(label[186], "BGP_Reserved");
767  strcpy(label[187], "BGP_Reserved");
768  strcpy(label[188], "BGP_Reserved");
769  strcpy(label[189], "BGP_Reserved");
770  strcpy(label[190], "BGP_Reserved");
771  strcpy(label[191], "BGP_Reserved");
772  strcpy(label[192], "BGP_Reserved");
773  strcpy(label[193], "BGP_PU3_L2_MEMORY_WRITES");
774  strcpy(label[194], "BGP_PU3_L2_NETWORK_WRITES");
775  strcpy(label[195], "BGP_PU3_L2_DEVBUS_WRITES");
776  strcpy(label[196], "BGP_L3_M0_R2_SINGLE_LINE_DELIVERED_L2");
777  strcpy(label[197], "BGP_L3_M0_R2_BURST_DELIVERED_L2");
778  strcpy(label[198], "BGP_L3_M0_R2_READ_RETURN_COLLISION");
779  strcpy(label[199], "BGP_L3_M0_R2_DIR0_HIT_OR_INFLIGHT");
780  strcpy(label[200], "BGP_L3_M0_R2_DIR0_MISS_OR_LOCKDOWN");
781  strcpy(label[201], "BGP_L3_M0_R2_DIR1_HIT_OR_INFLIGHT");
782  strcpy(label[202], "BGP_L3_M0_R2_DIR1_MISS_OR_LOCKDOWN");
783  strcpy(label[203], "BGP_L3_M0_W0_DEPOSIT_REQUESTS");
784  strcpy(label[204], "BGP_L3_M0_W0_CYCLES_REQUESTS_NOT_TAKEN");
785  strcpy(label[205], "BGP_L3_M0_W1_DEPOSIT_REQUESTS");
786  strcpy(label[206], "BGP_L3_M0_W1_CYCLES_REQUESTS_NOT_TAKEN");
787  strcpy(label[207], "BGP_L3_M0_MH_ALLOCATION_REQUESTS");
788  strcpy(label[208], "BGP_L3_M0_MH_CYCLES_ALLOCATION_REQUESTS_NOT_TAKEN");
789  strcpy(label[209], "BGP_L3_M0_PF_PREFETCH_INTO_EDRAM");
790  strcpy(label[210], "BGP_RESERVED");
791  strcpy(label[211], "BGP_RESERVED");
792  strcpy(label[212], "BGP_RESERVED");
793  strcpy(label[213], "BGP_RESERVED");
794  strcpy(label[214], "BGP_RESERVED");
795  strcpy(label[215], "BGP_RESERVED");
796  strcpy(label[216], "BGP_L3_M1_R2_SINGLE_LINE_DELIVERED_L2");
797  strcpy(label[217], "BGP_L3_M1_R2_BURST_DELIVERED_L2");
798  strcpy(label[218], "BGP_L3_M1_R2_READ_RETURN_COLLISION");
799  strcpy(label[219], "BGP_L3_M1_R2_DIR0_HIT_OR_INFLIGHT");
800  strcpy(label[220], "BGP_L3_M1_R2_DIR0_MISS_OR_LOCKDOWN");
801  strcpy(label[221], "BGP_L3_M1_R2_DIR1_HIT_OR_INFLIGHT");
802  strcpy(label[222], "BGP_L3_M1_R2_DIR1_MISS_OR_LOCKDOWN");
803  strcpy(label[223], "BGP_L3_M1_W0_DEPOSIT_REQUESTS");
804  strcpy(label[224], "BGP_L3_M1_W0_CYCLES_REQUESTS_NOT_TAKEN");
805  strcpy(label[225], "BGP_L3_M1_W1_DEPOSIT_REQUESTS");
806  strcpy(label[226], "BGP_L3_M1_W1_CYCLES_REQUESTS_NOT_TAKEN");
807  strcpy(label[227], "BGP_L3_M1_MH_ALLOCATION_REQUESTS");
808  strcpy(label[228], "BGP_L3_M1_MH_CYCLES_ALLOCATION_REQUESTS_NOT_TAKEN");
809  strcpy(label[229], "BGP_L3_M1_PF_PREFETCH_INTO_EDRAM");
810  strcpy(label[230], "BGP_Reserved");
811  strcpy(label[231], "BGP_Reserved");
812  strcpy(label[232], "BGP_Reserved");
813  strcpy(label[233], "BGP_Reserved");
814  strcpy(label[234], "BGP_Reserved");
815  strcpy(label[235], "BGP_Reserved");
816  strcpy(label[236], "BGP_PU2_SNOOP_PORT0_REMOTE_SOURCE_REQUESTS");
817  strcpy(label[237], "BGP_PU2_SNOOP_PORT1_REMOTE_SOURCE_REQUESTS");
818  strcpy(label[238], "BGP_PU2_SNOOP_PORT2_REMOTE_SOURCE_REQUESTS");
819  strcpy(label[239], "BGP_PU2_SNOOP_PORT3_REMOTE_SOURCE_REQUESTS");
820  strcpy(label[240], "BGP_PU2_SNOOP_PORT0_REJECTED_REQUESTS");
821  strcpy(label[241], "BGP_PU2_SNOOP_PORT1_REJECTED_REQUESTS");
822  strcpy(label[242], "BGP_PU2_SNOOP_PORT2_REJECTED_REQUESTS");
823  strcpy(label[243], "BGP_PU2_SNOOP_PORT3_REJECTED_REQUESTS");
824  strcpy(label[244], "BGP_PU2_SNOOP_L1_CACHE_WRAP");
825  strcpy(label[245], "BGP_PU3_SNOOP_PORT0_REMOTE_SOURCE_REQUESTS");
826  strcpy(label[246], "BGP_PU3_SNOOP_PORT1_REMOTE_SOURCE_REQUESTS");
827  strcpy(label[247], "BGP_PU3_SNOOP_PORT2_REMOTE_SOURCE_REQUESTS");
828  strcpy(label[248], "BGP_PU3_SNOOP_PORT3_REMOTE_SOURCE_REQUESTS");
829  strcpy(label[249], "BGP_PU3_SNOOP_PORT0_REJECTED_REQUESTS");
830  strcpy(label[250], "BGP_PU3_SNOOP_PORT1_REJECTED_REQUESTS");
831  strcpy(label[251], "BGP_PU3_SNOOP_PORT2_REJECTED_REQUESTS");
832  strcpy(label[252], "BGP_PU3_SNOOP_PORT3_REJECTED_REQUESTS");
833  strcpy(label[253], "BGP_PU3_SNOOP_L1_CACHE_WRAP");
834  strcpy(label[254], "BGP_Reserved");
835  strcpy(label[255], "BGP_MISC_ELAPSED_TIME_UM1");
836  }
837 
838  else if (mode == 2)
839  {
840  strcpy(label[0], "BGP_PU0_JPIPE_INSTRUCTIONS_UM2");
841  strcpy(label[1], "BGP_PU0_JPIPE_ADD_SUB_UM2");
842  strcpy(label[2], "BGP_PU0_JPIPE_LOGICAL_OPS_UM2");
843  strcpy(label[3], "BGP_PU0_JPIPE_SHROTMK_UM2");
844  strcpy(label[4], "BGP_PU0_IPIPE_INSTRUCTIONS_UM2");
845  strcpy(label[5], "BGP_PU0_IPIPE_MULT_DIV_UM2");
846  strcpy(label[6], "BGP_PU0_IPIPE_ADD_SUB_UM2");
847  strcpy(label[7], "BGP_PU0_IPIPE_LOGICAL_OPS_UM2");
848  strcpy(label[8], "BGP_PU0_IPIPE_SHROTMK_UM2");
849  strcpy(label[9], "BGP_PU0_IPIPE_BRANCHES_UM2");
850  strcpy(label[10], "BGP_PU0_IPIPE_TLB_OPS_UM2");
851  strcpy(label[11], "BGP_PU0_IPIPE_PROCESS_CONTROL_UM2");
852  strcpy(label[12], "BGP_PU0_IPIPE_OTHER_UM2");
853  strcpy(label[13], "BGP_PU0_DCACHE_LINEFILLINPROG_UM2");
854  strcpy(label[14], "BGP_PU0_ICACHE_LINEFILLINPROG_UM2");
855  strcpy(label[15], "BGP_PU0_DCACHE_MISS_UM2");
856  strcpy(label[16], "BGP_PU0_DCACHE_HIT_UM2");
857  strcpy(label[17], "BGP_PU0_DATA_LOADS_UM2");
858  strcpy(label[18], "BGP_PU0_DATA_STORES_UM2");
859  strcpy(label[19], "BGP_PU0_DCACHE_OPS_UM2");
860  strcpy(label[20], "BGP_PU0_ICACHE_MISS_UM2");
861  strcpy(label[21], "BGP_PU0_ICACHE_HIT_UM2");
862  strcpy(label[22], "BGP_PU0_FPU_ADD_SUB_1_UM2");
863  strcpy(label[23], "BGP_PU0_FPU_MULT_1_UM2");
864  strcpy(label[24], "BGP_PU0_FPU_FMA_2_UM2");
865  strcpy(label[25], "BGP_PU0_FPU_DIV_1_UM2");
866  strcpy(label[26], "BGP_PU0_FPU_OTHER_NON_STORAGE_OPS_UM2");
867  strcpy(label[27], "BGP_PU0_FPU_ADD_SUB_2_UM2");
868  strcpy(label[28], "BGP_PU0_FPU_MULT_2_UM2");
869  strcpy(label[29], "BGP_PU0_FPU_FMA_4_UM2");
870  strcpy(label[30], "BGP_PU0_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS_UM2");
871  strcpy(label[31], "BGP_PU0_FPU_QUADWORD_LOADS_UM2");
872  strcpy(label[32], "BGP_PU0_FPU_OTHER_LOADS_UM2");
873  strcpy(label[33], "BGP_PU0_FPU_QUADWORD_STORES_UM2");
874  strcpy(label[34], "BGP_PU0_FPU_OTHER_STORES_UM2");
875  strcpy(label[35], "BGP_PU1_JPIPE_INSTRUCTIONS_UM2");
876  strcpy(label[36], "BGP_PU1_JPIPE_ADD_SUB_UM2");
877  strcpy(label[37], "BGP_PU1_JPIPE_LOGICAL_OPS_UM2");
878  strcpy(label[38], "BGP_PU1_JPIPE_SHROTMK_UM2");
879  strcpy(label[39], "BGP_PU1_IPIPE_INSTRUCTIONS_UM2");
880  strcpy(label[40], "BGP_PU1_IPIPE_MULT_DIV_UM2");
881  strcpy(label[41], "BGP_PU1_IPIPE_ADD_SUB_UM2");
882  strcpy(label[42], "BGP_PU1_IPIPE_LOGICAL_OPS_UM2");
883  strcpy(label[43], "BGP_PU1_IPIPE_SHROTMK_UM2");
884  strcpy(label[44], "BGP_PU1_IPIPE_BRANCHES_UM2");
885  strcpy(label[45], "BGP_PU1_IPIPE_TLB_OPS_UM2");
886  strcpy(label[46], "BGP_PU1_IPIPE_PROCESS_CONTROL_UM2");
887  strcpy(label[47], "BGP_PU1_IPIPE_OTHER_UM2");
888  strcpy(label[48], "BGP_PU1_DCACHE_LINEFILLINPROG_UM2");
889  strcpy(label[49], "BGP_PU1_ICACHE_LINEFILLINPROG_UM2");
890  strcpy(label[50], "BGP_PU1_DCACHE_MISS_UM2");
891  strcpy(label[51], "BGP_PU1_DCACHE_HIT_UM2");
892  strcpy(label[52], "BGP_PU1_DATA_LOADS_UM2");
893  strcpy(label[53], "BGP_PU1_DATA_STORES_UM2");
894  strcpy(label[54], "BGP_PU1_DCACHE_OPS_UM2");
895  strcpy(label[55], "BGP_PU1_ICACHE_MISS_UM2");
896  strcpy(label[56], "BGP_PU1_ICACHE_HIT_UM2");
897  strcpy(label[57], "BGP_PU1_FPU_ADD_SUB_1_UM2");
898  strcpy(label[58], "BGP_PU1_FPU_MULT_1_UM2");
899  strcpy(label[59], "BGP_PU1_FPU_FMA_2_UM2");
900  strcpy(label[60], "BGP_PU1_FPU_DIV_1_UM2");
901  strcpy(label[61], "BGP_PU1_FPU_OTHER_NON_STORAGE_OPS_UM2");
902  strcpy(label[62], "BGP_PU1_FPU_ADD_SUB_2_UM2");
903  strcpy(label[63], "BGP_PU1_FPU_MULT_2_UM2");
904  strcpy(label[64], "BGP_PU1_FPU_FMA_4_UM2");
905  strcpy(label[65], "BGP_PU1_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS_UM2");
906  strcpy(label[66], "BGP_PU1_FPU_QUADWORD_LOADS_UM2");
907  strcpy(label[67], "BGP_PU1_FPU_OTHER_LOADS_UM2");
908  strcpy(label[68], "BGP_PU1_FPU_QUADWORD_STORES_UM2");
909  strcpy(label[69], "BGP_PU1_FPU_OTHER_STORES_UM2");
910  strcpy(label[70], "BGP_PU0_L1_INVALIDATION_UM2");
911  strcpy(label[71], "BGP_PU1_L1_INVALIDATION_UM2");
912  strcpy(label[72], "BGP_PU0_SNOOP_PORT0_CACHE_REJECTED_REQUEST");
913  strcpy(label[73], "BGP_PU0_SNOOP_PORT1_CACHE_REJECTED_REQUEST");
914  strcpy(label[74], "BGP_PU0_SNOOP_PORT2_CACHE_REJECTED_REQUEST");
915  strcpy(label[75], "BGP_PU0_SNOOP_PORT3_CACHE_REJECTED_REQUEST");
916  strcpy(label[76], "BGP_PU0_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
917  strcpy(label[77], "BGP_PU0_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
918  strcpy(label[78], "BGP_PU0_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
919  strcpy(label[79], "BGP_PU0_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
920  strcpy(label[80], "BGP_PU0_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_HISTORY_SET");
921  strcpy(label[81], "BGP_PU0_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_HISTORY_SET");
922  strcpy(label[82], "BGP_PU0_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_HISTORY_SET");
923  strcpy(label[83], "BGP_PU0_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_HISTORY_SET");
924  strcpy(label[84], "BGP_PU0_SNOOP_PORT0_STREAM_REGISTER_REJECTED_REQUEST");
925  strcpy(label[85], "BGP_PU0_SNOOP_PORT1_STREAM_REGISTER_REJECTED_REQUEST");
926  strcpy(label[86], "BGP_PU0_SNOOP_PORT2_STREAM_REGISTER_REJECTED_REQUEST");
927  strcpy(label[87], "BGP_PU0_SNOOP_PORT3_STREAM_REGISTER_REJECTED_REQUEST");
928  strcpy(label[88], "BGP_PU0_SNOOP_PORT0_RANGE_FILTER_REJECTED_REQUEST");
929  strcpy(label[89], "BGP_PU0_SNOOP_PORT1_RANGE_FILTER_REJECTED_REQUEST");
930  strcpy(label[90], "BGP_PU0_SNOOP_PORT2_RANGE_FILTER_REJECTED_REQUEST");
931  strcpy(label[91], "BGP_PU0_SNOOP_PORT3_RANGE_FILTER_REJECTED_REQUEST");
932  strcpy(label[92], "BGP_PU0_SNOOP_PORT0_UPDATED_CACHE_LINE");
933  strcpy(label[93], "BGP_PU0_SNOOP_PORT1_UPDATED_CACHE_LINE");
934  strcpy(label[94], "BGP_PU0_SNOOP_PORT2_UPDATED_CACHE_LINE");
935  strcpy(label[95], "BGP_PU0_SNOOP_PORT3_UPDATED_CACHE_LINE");
936  strcpy(label[96], "BGP_PU0_SNOOP_PORT0_FILTERED_BY_CACHE_AND_REGISTERS");
937  strcpy(label[97], "BGP_PU0_SNOOP_PORT1_FILTERED_BY_CACHE_AND_REGISTERS");
938  strcpy(label[98], "BGP_PU0_SNOOP_PORT2_FILTERED_BY_CACHE_AND_REGISTERS");
939  strcpy(label[99], "BGP_PU0_SNOOP_PORT3_FILTERED_BY_CACHE_AND_REGISTERS");
940  strcpy(label[100], "BGP_PU1_SNOOP_PORT0_CACHE_REJECTED_REQUEST");
941  strcpy(label[101], "BGP_PU1_SNOOP_PORT1_CACHE_REJECTED_REQUEST");
942  strcpy(label[102], "BGP_PU1_SNOOP_PORT2_CACHE_REJECTED_REQUEST");
943  strcpy(label[103], "BGP_PU1_SNOOP_PORT3_CACHE_REJECTED_REQUEST");
944  strcpy(label[104], "BGP_PU1_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
945  strcpy(label[105], "BGP_PU1_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
946  strcpy(label[106], "BGP_PU1_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
947  strcpy(label[107], "BGP_PU1_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
948  strcpy(label[108], "BGP_PU1_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_HISTORY_SET");
949  strcpy(label[109], "BGP_PU1_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_HISTORY_SET");
950  strcpy(label[110], "BGP_PU1_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_HISTORY_SET");
951  strcpy(label[111], "BGP_PU1_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_HISTORY_SET");
952  strcpy(label[112], "BGP_PU1_SNOOP_PORT0_STREAM_REGISTER_REJECTED_REQUEST");
953  strcpy(label[113], "BGP_PU1_SNOOP_PORT1_STREAM_REGISTER_REJECTED_REQUEST");
954  strcpy(label[114], "BGP_PU1_SNOOP_PORT2_STREAM_REGISTER_REJECTED_REQUEST");
955  strcpy(label[115], "BGP_PU1_SNOOP_PORT3_STREAM_REGISTER_REJECTED_REQUEST");
956  strcpy(label[116], "BGP_PU1_SNOOP_PORT0_RANGE_FILTER_REJECTED_REQUEST");
957  strcpy(label[117], "BGP_PU1_SNOOP_PORT1_RANGE_FILTER_REJECTED_REQUEST");
958  strcpy(label[118], "BGP_PU1_SNOOP_PORT2_RANGE_FILTER_REJECTED_REQUEST");
959  strcpy(label[119], "BGP_PU1_SNOOP_PORT3_RANGE_FILTER_REJECTED_REQUEST");
960  strcpy(label[120], "BGP_PU1_SNOOP_PORT0_UPDATED_CACHE_LINE");
961  strcpy(label[121], "BGP_PU1_SNOOP_PORT1_UPDATED_CACHE_LINE");
962  strcpy(label[122], "BGP_PU1_SNOOP_PORT2_UPDATED_CACHE_LINE");
963  strcpy(label[123], "BGP_PU1_SNOOP_PORT3_UPDATED_CACHE_LINE");
964  strcpy(label[124], "BGP_PU1_SNOOP_PORT0_FILTERED_BY_CACHE_AND_REGISTERS");
965  strcpy(label[125], "BGP_PU1_SNOOP_PORT1_FILTERED_BY_CACHE_AND_REGISTERS");
966  strcpy(label[126], "BGP_PU1_SNOOP_PORT2_FILTERED_BY_CACHE_AND_REGISTERS");
967  strcpy(label[127], "BGP_PU1_SNOOP_PORT3_FILTERED_BY_CACHE_AND_REGISTERS");
968  strcpy(label[128], "BGP_TORUS_XP_TOKEN_ACK_PACKETS");
969  strcpy(label[129], "BGP_TORUS_XP_ACKS");
970  strcpy(label[130], "BGP_TORUS_XP_VCD0_32BCHUNKS");
971  strcpy(label[131], "BGP_TORUS_XP_VCD1_32BCHUNKS");
972  strcpy(label[132], "BGP_TORUS_XP_VCBN_32BCHUNKS");
973  strcpy(label[133], "BGP_TORUS_XP_VCBP_32BCHUNKS");
974  strcpy(label[134], "BGP_TORUS_XP_NO_TOKENS");
975  strcpy(label[135], "BGP_TORUS_XP_NO_VCD0_TOKENS");
976  strcpy(label[136], "BGP_TORUS_XP_NO_VCBN_TOKENS");
977  strcpy(label[137], "BGP_TORUS_XP_NO_VCBP_TOKENS");
978  strcpy(label[138], "BGP_TORUS_XM_TOKEN_ACK_PACKETS");
979  strcpy(label[139], "BGP_TORUS_XM_ACKS");
980  strcpy(label[140], "BGP_TORUS_XM_VCD0_32BCHUNKS");
981  strcpy(label[141], "BGP_TORUS_XM_VCD1_32BCHUNKS");
982  strcpy(label[142], "BGP_TORUS_XM_VCBN_32BCHUNKS");
983  strcpy(label[143], "BGP_TORUS_XM_VCBP_32BCHUNKS");
984  strcpy(label[144], "BGP_TORUS_XM_NO_TOKENS");
985  strcpy(label[145], "BGP_TORUS_XM_NO_VCD0_TOKENS");
986  strcpy(label[146], "BGP_TORUS_XM_NO_VCBN_TOKENS");
987  strcpy(label[147], "BGP_TORUS_XM_NO_VCBP_TOKENS");
988  strcpy(label[148], "BGP_TORUS_YP_TOKEN_ACK_PACKETS");
989  strcpy(label[149], "BGP_TORUS_YP_ACKS");
990  strcpy(label[150], "BGP_TORUS_YP_VCD0_32BCHUNKS");
991  strcpy(label[151], "BGP_TORUS_YP_VCD1_32BCHUNKS");
992  strcpy(label[152], "BGP_TORUS_YP_VCBN_32BCHUNKS");
993  strcpy(label[153], "BGP_TORUS_YP_VCBP_32BCHUNKS");
994  strcpy(label[154], "BGP_TORUS_YP_NO_TOKENS");
995  strcpy(label[155], "BGP_TORUS_YP_NO_VCD0_TOKENS");
996  strcpy(label[156], "BGP_TORUS_YP_NO_VCBN_TOKENS");
997  strcpy(label[157], "BGP_TORUS_YP_NO_VCBP_TOKENS");
998  strcpy(label[158], "BGP_TORUS_YM_TOKEN_ACK_PACKETS");
999  strcpy(label[159], "BGP_TORUS_YM_ACKS");
1000  strcpy(label[160], "BGP_TORUS_YM_VCD0_32BCHUNKS");
1001  strcpy(label[161], "BGP_TORUS_YM_VCD1_32BCHUNKS");
1002  strcpy(label[162], "BGP_TORUS_YM_VCBN_32BCHUNKS");
1003  strcpy(label[163], "BGP_TORUS_YM_VCBP_32BCHUNKS");
1004  strcpy(label[164], "BGP_TORUS_YM_NO_TOKENS");
1005  strcpy(label[165], "BGP_TORUS_YM_NO_VCD0_TOKENS");
1006  strcpy(label[166], "BGP_TORUS_YM_NO_VCBN_TOKENS");
1007  strcpy(label[167], "BGP_TORUS_YM_NO_VCBP_TOKENS");
1008  strcpy(label[168], "BGP_TORUS_ZP_TOKEN_ACK_PACKETS");
1009  strcpy(label[169], "BGP_TORUS_ZP_ACKS");
1010  strcpy(label[170], "BGP_TORUS_ZP_VCD0_32BCHUNKS");
1011  strcpy(label[171], "BGP_TORUS_ZP_VCD1_32BCHUNKS");
1012  strcpy(label[172], "BGP_TORUS_ZP_VCBN_32BCHUNKS");
1013  strcpy(label[173], "BGP_TORUS_ZP_VCBP_32BCHUNKS");
1014  strcpy(label[174], "BGP_TORUS_ZP_NO_TOKENS");
1015  strcpy(label[175], "BGP_TORUS_ZP_NO_VCD0_TOKENS");
1016  strcpy(label[176], "BGP_TORUS_ZP_NO_VCBN_TOKENS");
1017  strcpy(label[177], "BGP_TORUS_ZP_NO_VCBP_TOKENS");
1018  strcpy(label[178], "BGP_TORUS_ZM_TOKEN_ACK_PACKETS");
1019  strcpy(label[179], "BGP_TORUS_ZM_ACKS");
1020  strcpy(label[180], "BGP_TORUS_ZM_VCD0_32BCHUNKS");
1021  strcpy(label[181], "BGP_TORUS_ZM_VCD1_32BCHUNKS");
1022  strcpy(label[182], "BGP_TORUS_ZM_VCBN_32BCHUNKS");
1023  strcpy(label[183], "BGP_TORUS_ZM_VCBP_32BCHUNKS");
1024  strcpy(label[184], "BGP_TORUS_ZM_NO_TOKENS");
1025  strcpy(label[185], "BGP_TORUS_ZM_NO_VCD0_TOKENS");
1026  strcpy(label[186], "BGP_RESERVED");
1027  strcpy(label[187], "BGP_RESERVED");
1028  strcpy(label[188], "BGP_RESERVED");
1029  strcpy(label[189], "BGP_RESERVED");
1030  strcpy(label[190], "BGP_RESERVED");
1031  strcpy(label[191], "BGP_RESERVED");
1032  strcpy(label[192], "BGP_RESERVED");
1033  strcpy(label[193], "BGP_RESERVED");
1034  strcpy(label[194], "BGP_RESERVED");
1035  strcpy(label[195], "BGP_RESERVED");
1036  strcpy(label[196], "BGP_RESERVED");
1037  strcpy(label[197], "BGP_RESERVED");
1038  strcpy(label[198], "BGP_RESERVED");
1039  strcpy(label[199], "BGP_RESERVED");
1040  strcpy(label[200], "BGP_RESERVED");
1041  strcpy(label[201], "BGP_RESERVED");
1042  strcpy(label[202], "BGP_RESERVED");
1043  strcpy(label[203], "BGP_RESERVED");
1044  strcpy(label[204], "BGP_COL_AR2_ABORT_UM2");
1045  strcpy(label[205], "BGP_COL_AR1_ABORT_UM2");
1046  strcpy(label[206], "BGP_COL_AR0_ABORT_UM2");
1047  strcpy(label[207], "BGP_COL_A_LOCAL_CLIENT_ABORT");
1048  strcpy(label[208], "BGP_COL_AR0_VC0_FULL");
1049  strcpy(label[209], "BGP_COL_AR0_VC1_FULL");
1050  strcpy(label[210], "BGP_COL_AR1_VC0_FULL");
1051  strcpy(label[211], "BGP_COL_AR1_VC1_FULL");
1052  strcpy(label[212], "BGP_COL_AR2_VC0_FULL");
1053  strcpy(label[213], "BGP_COL_AR2_VC1_FULL");
1054  strcpy(label[214], "BGP_COL_AS0_VC0_EMPTY");
1055  strcpy(label[215], "BGP_COL_AS0_VC1_EMPTY");
1056  strcpy(label[216], "BGP_COL_AS0_RESENDS");
1057  strcpy(label[217], "BGP_COL_AS1_VC0_EMPTY");
1058  strcpy(label[218], "BGP_COL_AS1_VC1_EMPTY");
1059  strcpy(label[219], "BGP_COL_AS1_RESENDS");
1060  strcpy(label[220], "BGP_COL_AS2_VC0_EMPTY");
1061  strcpy(label[221], "BGP_COL_AS2_VC1_EMPTY");
1062  strcpy(label[222], "BGP_COL_AS2_RESENDS");
1063  strcpy(label[223], "BGP_RESERVED");
1064  strcpy(label[224], "BGP_RESERVED");
1065  strcpy(label[225], "BGP_RESERVED");
1066  strcpy(label[226], "BGP_RESERVED");
1067  strcpy(label[227], "BGP_RESERVED");
1068  strcpy(label[228], "BGP_RESERVED");
1069  strcpy(label[229], "BGP_RESERVED");
1070  strcpy(label[230], "BGP_RESERVED");
1071  strcpy(label[231], "BGP_RESERVED");
1072  strcpy(label[232], "BGP_RESERVED");
1073  strcpy(label[233], "BGP_RESERVED");
1074  strcpy(label[234], "BGP_RESERVED");
1075  strcpy(label[235], "BGP_RESERVED");
1076  strcpy(label[236], "BGP_RESERVED");
1077  strcpy(label[237], "BGP_RESERVED");
1078  strcpy(label[238], "BGP_RESERVED");
1079  strcpy(label[239], "BGP_RESERVED");
1080  strcpy(label[240], "BGP_RESERVED");
1081  strcpy(label[241], "BGP_RESERVED");
1082  strcpy(label[242], "BGP_RESERVED");
1083  strcpy(label[243], "BGP_RESERVED");
1084  strcpy(label[244], "BGP_RESERVED");
1085  strcpy(label[245], "BGP_RESERVED");
1086  strcpy(label[246], "BGP_RESERVED");
1087  strcpy(label[247], "BGP_RESERVED");
1088  strcpy(label[248], "BGP_RESERVED");
1089  strcpy(label[249], "BGP_RESERVED");
1090  strcpy(label[250], "BGP_RESERVED");
1091  strcpy(label[251], "BGP_RESERVED");
1092  strcpy(label[252], "BGP_RESERVED");
1093  strcpy(label[253], "BGP_RESERVED");
1094  strcpy(label[254], "BGP_RESERVED");
1095  strcpy(label[255], "BGP_MISC_ELAPSED_TIME_UM2");
1096  }
1097 
1098  else if (mode == 3)
1099  {
1100  strcpy(label[0], "BGP_PU2_JPIPE_INSTRUCTIONS_UM3");
1101  strcpy(label[1], "BGP_PU2_JPIPE_ADD_SUB_UM3");
1102  strcpy(label[2], "BGP_PU2_JPIPE_LOGICAL_OPS_UM3");
1103  strcpy(label[3], "BGP_PU2_JPIPE_SHROTMK_UM3");
1104  strcpy(label[4], "BGP_PU2_IPIPE_INSTRUCTIONS_UM3");
1105  strcpy(label[5], "BGP_PU2_IPIPE_MULT_DIV_UM3");
1106  strcpy(label[6], "BGP_PU2_IPIPE_ADD_SUB_UM3");
1107  strcpy(label[7], "BGP_PU2_IPIPE_LOGICAL_OPS_UM3");
1108  strcpy(label[8], "BGP_PU2_IPIPE_SHROTMK_UM3");
1109  strcpy(label[9], "BGP_PU2_IPIPE_BRANCHES_UM3");
1110  strcpy(label[10], "BGP_PU2_IPIPE_TLB_OPS_UM3");
1111  strcpy(label[11], "BGP_PU2_IPIPE_PROCESS_CONTROL_UM3");
1112  strcpy(label[12], "BGP_PU2_IPIPE_OTHER_UM3");
1113  strcpy(label[13], "BGP_PU2_DCACHE_LINEFILLINPROG_UM3");
1114  strcpy(label[14], "BGP_PU2_ICACHE_LINEFILLINPROG_UM3");
1115  strcpy(label[15], "BGP_PU2_DCACHE_MISS_UM3");
1116  strcpy(label[16], "BGP_PU2_DCACHE_HIT_UM3");
1117  strcpy(label[17], "BGP_PU2_DATA_LOADS_UM3");
1118  strcpy(label[18], "BGP_PU2_DATA_STORES_UM3");
1119  strcpy(label[19], "BGP_PU2_DCACHE_OPS_UM3");
1120  strcpy(label[20], "BGP_PU2_ICACHE_MISS_UM3");
1121  strcpy(label[21], "BGP_PU2_ICACHE_HIT_UM3");
1122  strcpy(label[22], "BGP_PU2_FPU_ADD_SUB_1_UM3");
1123  strcpy(label[23], "BGP_PU2_FPU_MULT_1_UM3");
1124  strcpy(label[24], "BGP_PU2_FPU_FMA_2_UM3");
1125  strcpy(label[25], "BGP_PU2_FPU_DIV_1_UM3");
1126  strcpy(label[26], "BGP_PU2_FPU_OTHER_NON_STORAGE_OPS_UM3");
1127  strcpy(label[27], "BGP_PU2_FPU_ADD_SUB_2_UM3");
1128  strcpy(label[28], "BGP_PU2_FPU_MULT_2_UM3");
1129  strcpy(label[29], "BGP_PU2_FPU_FMA_4_UM3");
1130  strcpy(label[30], "BGP_PU2_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS_UM3");
1131  strcpy(label[31], "BGP_PU2_FPU_QUADWORD_LOADS_UM3");
1132  strcpy(label[32], "BGP_PU2_FPU_OTHER_LOADS_UM3");
1133  strcpy(label[33], "BGP_PU2_FPU_QUADWORD_STORES_UM3");
1134  strcpy(label[34], "BGP_PU2_FPU_OTHER_STORES_UM3");
1135  strcpy(label[35], "BGP_PU3_JPIPE_INSTRUCTIONS_UM3");
1136  strcpy(label[36], "BGP_PU3_JPIPE_ADD_SUB_UM3");
1137  strcpy(label[37], "BGP_PU3_JPIPE_LOGICAL_OPS_UM3");
1138  strcpy(label[38], "BGP_PU3_JPIPE_SHROTMK_UM3");
1139  strcpy(label[39], "BGP_PU3_IPIPE_INSTRUCTIONS_UM3");
1140  strcpy(label[40], "BGP_PU3_IPIPE_MULT_DIV_UM3");
1141  strcpy(label[41], "BGP_PU3_IPIPE_ADD_SUB_UM3");
1142  strcpy(label[42], "BGP_PU3_IPIPE_LOGICAL_OPS_UM3");
1143  strcpy(label[43], "BGP_PU3_IPIPE_SHROTMK_UM3");
1144  strcpy(label[44], "BGP_PU3_IPIPE_BRANCHES_UM3");
1145  strcpy(label[45], "BGP_PU3_IPIPE_TLB_OPS_UM3");
1146  strcpy(label[46], "BGP_PU3_IPIPE_PROCESS_CONTROL_UM3");
1147  strcpy(label[47], "BGP_PU3_IPIPE_OTHER_UM3");
1148  strcpy(label[48], "BGP_PU3_DCACHE_LINEFILLINPROG_UM3");
1149  strcpy(label[49], "BGP_PU3_ICACHE_LINEFILLINPROG_UM3");
1150  strcpy(label[50], "BGP_PU3_DCACHE_MISS_UM3");
1151  strcpy(label[51], "BGP_PU3_DCACHE_HIT_UM3");
1152  strcpy(label[52], "BGP_PU3_DATA_LOADS_UM3");
1153  strcpy(label[53], "BGP_PU3_DATA_STORES_UM3");
1154  strcpy(label[54], "BGP_PU3_DCACHE_OPS_UM3");
1155  strcpy(label[55], "BGP_PU3_ICACHE_MISS_UM3");
1156  strcpy(label[56], "BGP_PU3_ICACHE_HIT_UM3");
1157  strcpy(label[57], "BGP_PU3_FPU_ADD_SUB_1_UM3");
1158  strcpy(label[58], "BGP_PU3_FPU_MULT_1_UM3");
1159  strcpy(label[59], "BGP_PU3_FPU_FMA_2_UM3");
1160  strcpy(label[60], "BGP_PU3_FPU_DIV_1_UM3");
1161  strcpy(label[61], "BGP_PU3_FPU_OTHER_NON_STORAGE_OPS_UM3");
1162  strcpy(label[62], "BGP_PU3_FPU_ADD_SUB_2_UM3");
1163  strcpy(label[63], "BGP_PU3_FPU_MULT_2_UM3");
1164  strcpy(label[64], "BGP_PU3_FPU_FMA_4_UM3");
1165  strcpy(label[65], "BGP_PU3_FPU_DUAL_PIPE_OTHER_NON_STORAGE_OPS_UM3");
1166  strcpy(label[66], "BGP_PU3_FPU_QUADWORD_LOADS_UM3");
1167  strcpy(label[67], "BGP_PU3_FPU_OTHER_LOADS_UM3");
1168  strcpy(label[68], "BGP_PU3_FPU_QUADWORD_STORES_UM3");
1169  strcpy(label[69], "BGP_PU3_FPU_OTHER_STORES_UM3");
1170  strcpy(label[70], "BGP_PU2_L1_INVALIDATION_UM3");
1171  strcpy(label[71], "BGP_PU3_L1_INVALIDATION_UM3");
1172  strcpy(label[72], "BGP_COL_A_CH2_VC0_HAVE");
1173  strcpy(label[73], "BGP_COL_A_CH1_VC0_HAVE");
1174  strcpy(label[74], "BGP_COL_A_CH0_VC0_HAVE");
1175  strcpy(label[75], "BGP_COL_A_INJECT_VC0_HAVE");
1176  strcpy(label[76], "BGP_COL_A_CH2_VC1_HAVE");
1177  strcpy(label[77], "BGP_COL_A_CH1_VC1_HAVE");
1178  strcpy(label[78], "BGP_COL_A_CH0_VC1_HAVE");
1179  strcpy(label[79], "BGP_COL_A_INJECT_VC1_HAVE");
1180  strcpy(label[80], "BGP_COL_AC_GREEDY_MODE");
1181  strcpy(label[81], "BGP_COL_AC_PENDING_REQUESTS_UM3");
1182  strcpy(label[82], "BGP_COL_AC_WAITING_REQUESTS_UM3");
1183  strcpy(label[83], "BGP_COL_ACLS0_WINS");
1184  strcpy(label[84], "BGP_COL_ACLS1_WINS");
1185  strcpy(label[85], "BGP_COL_ACLS2_WINS");
1186  strcpy(label[86], "BGP_COL_ACLS3_WINS");
1187  strcpy(label[87], "BGP_COL_ACLS4_WINS");
1188  strcpy(label[88], "BGP_COL_ACLS5_WINS");
1189  strcpy(label[89], "BGP_COL_ACLS6_WINS");
1190  strcpy(label[90], "BGP_COL_ACLS7_WINS");
1191  strcpy(label[91], "BGP_COL_ACLS8_WINS");
1192  strcpy(label[92], "BGP_COL_ACLS9_WINS");
1193  strcpy(label[93], "BGP_COL_ACLS10_WINS");
1194  strcpy(label[94], "BGP_COL_ACLS11_WINS");
1195  strcpy(label[95], "BGP_COL_ACLS12_WINS");
1196  strcpy(label[96], "BGP_COL_ACLS13_WINS");
1197  strcpy(label[97], "BGP_COL_ACLS14_WINS");
1198  strcpy(label[98], "BGP_COL_ACLS15_WINS");
1199  strcpy(label[99], "BGP_COL_AS2_BUSY");
1200  strcpy(label[100], "BGP_COL_AS1_BUSY");
1201  strcpy(label[101], "BGP_COL_AS1_BUSY_RECEPTION");
1202  strcpy(label[102], "BGP_COL_ALC_BUSY");
1203  strcpy(label[103], "BGP_COL_AR2_BUSY");
1204  strcpy(label[104], "BGP_COL_AR1_BUSY");
1205  strcpy(label[105], "BGP_COL_AR0_BUSY");
1206  strcpy(label[106], "BGP_COL_ALC_BUSY_INJECT");
1207  strcpy(label[107], "BGP_COL_ALU_BUSY");
1208  strcpy(label[108], "BGP_COL_AR2_ABORT_UM3");
1209  strcpy(label[109], "BGP_COL_AR1_ABORT_UM3");
1210  strcpy(label[110], "BGP_COL_AR0_ABORT_UM3");
1211  strcpy(label[111], "BGP_COL_ALC_ABORT");
1212  strcpy(label[112], "BGP_COL_AR2_PACKET_TAKEN_UM3");
1213  strcpy(label[113], "BGP_COL_AR1_PACKET_TAKEN_UM3");
1214  strcpy(label[114], "BGP_COL_AR0_PACKET_TAKEN_UM3");
1215  strcpy(label[115], "BGP_COL_ALC_PACKET_TAKEN_UM3");
1216  strcpy(label[116], "BGP_COL_AR0_VC0_DATA_PACKET_RECEIVED");
1217  strcpy(label[117], "BGP_COL_AR0_VC1_DATA_PACKET_RECEIVED");
1218  strcpy(label[118], "BGP_COL_AR0_VC1_FULL_UM3");
1219  strcpy(label[119], "BGP_COL_AR0_HEADER_PARITY_ERROR_UM3");
1220  strcpy(label[120], "BGP_COL_AR1_VC0_DATA_PACKET_RECEIVED");
1221  strcpy(label[121], "BGP_COL_AR1_VC1_DATA_PACKET_RECEIVED");
1222  strcpy(label[122], "BGP_COL_AR1_VC0_FULL_UM3");
1223  strcpy(label[123], "BGP_COL_AR1_VC1_FULL_UM3");
1224  strcpy(label[124], "BGP_COL_AR2_VC0_DATA_PACKET_RECEIVED");
1225  strcpy(label[125], "BGP_COL_AR2_VC1_DATA_PACKET_RECEIVED");
1226  strcpy(label[126], "BGP_COL_AR2_VC0_FULL_UM3");
1227  strcpy(label[127], "BGP_COL_AR2_VC1_FULL_UM3");
1228  strcpy(label[128], "BGP_COL_AS0_VC0_EMPTY_UM3");
1229  strcpy(label[129], "BGP_COL_AS0_VC1_EMPTY_UM3");
1230  strcpy(label[130], "BGP_COL_AS0_VC0_DATA_PACKETS_SENT_UM3");
1231  strcpy(label[131], "BGP_COL_AS0_VC1_DATA_PACKETS_SENT_UM3");
1232  strcpy(label[132], "BGP_COL_AS0_RESENDS_UM3");
1233  strcpy(label[133], "BGP_COL_AS1_VC0_EMPTY_UM3");
1234  strcpy(label[134], "BGP_COL_AS1_VC1_EMPTY_UM3");
1235  strcpy(label[135], "BGP_COL_AS1_VC0_DATA_PACKETS_SENT_UM3");
1236  strcpy(label[136], "BGP_COL_AS1_VC1_DATA_PACKETS_SENT_UM3");
1237  strcpy(label[137], "BGP_COL_AS1_RESENDS_UM3");
1238  strcpy(label[138], "BGP_COL_AS2_VC0_EMPTY_UM3");
1239  strcpy(label[139], "BGP_COL_AS2_VC1_EMPTY_UM3");
1240  strcpy(label[140], "BGP_COL_AS2_VC0_DATA_PACKETS_SENT_UM3");
1241  strcpy(label[141], "BGP_COL_AS2_VC1_DATA_PACKETS_SENT_UM3");
1242  strcpy(label[142], "BGP_COL_AS2_RESENDS_UM3");
1243  strcpy(label[143], "BGP_COL_INJECT_VC0_HEADER_ADDED");
1244  strcpy(label[144], "BGP_COL_INJECT_VC1_HEADER_ADDED");
1245  strcpy(label[145], "BGP_COL_RECEPTION_VC0_PACKED_ADDED");
1246  strcpy(label[146], "BGP_COL_RECEPTION_VC1_PACKED_ADDED");
1247  strcpy(label[147], "BGP_PU2_SNOOP_PORT0_CACHE_REJECTED_REQUEST");
1248  strcpy(label[148], "BGP_PU2_SNOOP_PORT1_CACHE_REJECTED_REQUEST");
1249  strcpy(label[149], "BGP_PU2_SNOOP_PORT2_CACHE_REJECTED_REQUEST");
1250  strcpy(label[150], "BGP_PU2_SNOOP_PORT3_CACHE_REJECTED_REQUEST");
1251  strcpy(label[151], "BGP_PU2_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1252  strcpy(label[152], "BGP_PU2_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1253  strcpy(label[153], "BGP_PU2_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1254  strcpy(label[154], "BGP_PU2_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1255  strcpy(label[155], "BGP_PU2_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1256  strcpy(label[156], "BGP_PU2_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1257  strcpy(label[157], "BGP_PU2_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1258  strcpy(label[158], "BGP_PU2_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1259  strcpy(label[159], "BGP_PU2_SNOOP_PORT0_STREAM_REGISTER_REJECTED_REQUEST");
1260  strcpy(label[160], "BGP_PU2_SNOOP_PORT1_STREAM_REGISTER_REJECTED_REQUEST");
1261  strcpy(label[161], "BGP_PU2_SNOOP_PORT2_STREAM_REGISTER_REJECTED_REQUEST");
1262  strcpy(label[162], "BGP_PU2_SNOOP_PORT3_STREAM_REGISTER_REJECTED_REQUEST");
1263  strcpy(label[163], "BGP_PU2_SNOOP_PORT0_RANGE_FILTER_REJECTED_REQUEST");
1264  strcpy(label[164], "BGP_PU2_SNOOP_PORT1_RANGE_FILTER_REJECTED_REQUEST");
1265  strcpy(label[165], "BGP_PU2_SNOOP_PORT2_RANGE_FILTER_REJECTED_REQUEST");
1266  strcpy(label[166], "BGP_PU2_SNOOP_PORT3_RANGE_FILTER_REJECTED_REQUEST");
1267  strcpy(label[167], "BGP_PU2_SNOOP_PORT0_UPDATED_CACHE_LINE");
1268  strcpy(label[168], "BGP_PU2_SNOOP_PORT1_UPDATED_CACHE_LINE");
1269  strcpy(label[169], "BGP_PU2_SNOOP_PORT2_UPDATED_CACHE_LINE");
1270  strcpy(label[170], "BGP_PU2_SNOOP_PORT3_UPDATED_CACHE_LINE");
1271  strcpy(label[171], "BGP_PU2_SNOOP_PORT0_FILTERED_BY_CACHE_AND_REGISTERS");
1272  strcpy(label[172], "BGP_PU2_SNOOP_PORT1_FILTERED_BY_CACHE_AND_REGISTERS");
1273  strcpy(label[173], "BGP_PU2_SNOOP_PORT2_FILTERED_BY_CACHE_AND_REGISTERS");
1274  strcpy(label[174], "BGP_PU2_SNOOP_PORT3_FILTERED_BY_CACHE_AND_REGISTERS");
1275  strcpy(label[175], "BGP_PU3_SNOOP_PORT0_CACHE_REJECTED_REQUEST");
1276  strcpy(label[176], "BGP_PU3_SNOOP_PORT1_CACHE_REJECTED_REQUEST");
1277  strcpy(label[177], "BGP_PU3_SNOOP_PORT2_CACHE_REJECTED_REQUEST");
1278  strcpy(label[178], "BGP_PU3_SNOOP_PORT3_CACHE_REJECTED_REQUEST");
1279  strcpy(label[179], "BGP_PU3_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1280  strcpy(label[180], "BGP_PU3_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1281  strcpy(label[181], "BGP_PU3_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1282  strcpy(label[182], "BGP_PU3_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_ACTIVE_SET");
1283  strcpy(label[183], "BGP_PU3_SNOOP_PORT0_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1284  strcpy(label[184], "BGP_PU3_SNOOP_PORT1_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1285  strcpy(label[185], "BGP_PU3_SNOOP_PORT2_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1286  strcpy(label[186], "BGP_PU3_SNOOP_PORT3_HIT_STREAM_REGISTER_IN_HISTORY_SET");
1287  strcpy(label[187], "BGP_PU3_SNOOP_PORT0_STREAM_REGISTER_REJECTED_REQUEST");
1288  strcpy(label[188], "BGP_PU3_SNOOP_PORT1_STREAM_REGISTER_REJECTED_REQUEST");
1289  strcpy(label[189], "BGP_PU3_SNOOP_PORT2_STREAM_REGISTER_REJECTED_REQUEST");
1290  strcpy(label[190], "BGP_PU3_SNOOP_PORT3_STREAM_REGISTER_REJECTED_REQUEST");
1291  strcpy(label[191], "BGP_PU3_SNOOP_PORT0_RANGE_FILTER_REJECTED_REQUEST");
1292  strcpy(label[192], "BGP_PU3_SNOOP_PORT1_RANGE_FILTER_REJECTED_REQUEST");
1293  strcpy(label[193], "BGP_PU3_SNOOP_PORT2_RANGE_FILTER_REJECTED_REQUEST");
1294  strcpy(label[194], "BGP_PU3_SNOOP_PORT3_RANGE_FILTER_REJECTED_REQUEST");
1295  strcpy(label[195], "BGP_PU3_SNOOP_PORT0_UPDATED_CACHE_LINE");
1296  strcpy(label[196], "BGP_PU3_SNOOP_PORT1_UPDATED_CACHE_LINE");
1297  strcpy(label[197], "BGP_PU3_SNOOP_PORT2_UPDATED_CACHE_LINE");
1298  strcpy(label[198], "BGP_PU3_SNOOP_PORT3_UPDATED_CACHE_LINE");
1299  strcpy(label[199], "BGP_PU3_SNOOP_PORT0_FILTERED_BY_CACHE_AND_REGISTERS");
1300  strcpy(label[200], "BGP_PU3_SNOOP_PORT1_FILTERED_BY_CACHE_AND_REGISTERS");
1301  strcpy(label[201], "BGP_PU3_SNOOP_PORT2_FILTERED_BY_CACHE_AND_REGISTERS");
1302  strcpy(label[202], "BGP_PU3_SNOOP_PORT3_FILTERED_BY_CACHE_AND_REGISTERS");
1303  strcpy(label[203], "BGP_RESERVED");
1304  strcpy(label[204], "BGP_RESERVED");
1305  strcpy(label[205], "BGP_RESERVED");
1306  strcpy(label[206], "BGP_RESERVED");
1307  strcpy(label[207], "BGP_RESERVED");
1308  strcpy(label[208], "BGP_RESERVED");
1309  strcpy(label[209], "BGP_RESERVED");
1310  strcpy(label[210], "BGP_RESERVED");
1311  strcpy(label[211], "BGP_RESERVED");
1312  strcpy(label[212], "BGP_RESERVED");
1313  strcpy(label[213], "BGP_RESERVED");
1314  strcpy(label[214], "BGP_RESERVED");
1315  strcpy(label[215], "BGP_RESERVED");
1316  strcpy(label[216], "BGP_RESERVED");
1317  strcpy(label[217], "BGP_RESERVED");
1318  strcpy(label[218], "BGP_RESERVED");
1319  strcpy(label[219], "BGP_RESERVED");
1320  strcpy(label[220], "BGP_RESERVED");
1321  strcpy(label[221], "BGP_RESERVED");
1322  strcpy(label[222], "BGP_RESERVED");
1323  strcpy(label[223], "BGP_RESERVED");
1324  strcpy(label[224], "BGP_RESERVED");
1325  strcpy(label[225], "BGP_RESERVED");
1326  strcpy(label[226], "BGP_RESERVED");
1327  strcpy(label[227], "BGP_RESERVED");
1328  strcpy(label[228], "BGP_RESERVED");
1329  strcpy(label[229], "BGP_RESERVED");
1330  strcpy(label[230], "BGP_RESERVED");
1331  strcpy(label[231], "BGP_RESERVED");
1332  strcpy(label[232], "BGP_RESERVED");
1333  strcpy(label[233], "BGP_RESERVED");
1334  strcpy(label[234], "BGP_RESERVED");
1335  strcpy(label[235], "BGP_RESERVED");
1336  strcpy(label[236], "BGP_RESERVED");
1337  strcpy(label[237], "BGP_RESERVED");
1338  strcpy(label[238], "BGP_RESERVED");
1339  strcpy(label[239], "BGP_RESERVED");
1340  strcpy(label[240], "BGP_RESERVED");
1341  strcpy(label[241], "BGP_RESERVED");
1342  strcpy(label[242], "BGP_RESERVED");
1343  strcpy(label[243], "BGP_RESERVED");
1344  strcpy(label[244], "BGP_RESERVED");
1345  strcpy(label[245], "BGP_RESERVED");
1346  strcpy(label[246], "BGP_RESERVED");
1347  strcpy(label[247], "BGP_RESERVED");
1348  strcpy(label[248], "BGP_RESERVED");
1349  strcpy(label[249], "BGP_RESERVED");
1350  strcpy(label[250], "BGP_RESERVED");
1351  strcpy(label[251], "BGP_RESERVED");
1352  strcpy(label[252], "BGP_RESERVED");
1353  strcpy(label[253], "BGP_RESERVED");
1354  strcpy(label[254], "BGP_RESERVED");
1355  strcpy(label[255], "BGP_MISC_ELAPSED_TIME_UM3");
1356  }
1357 
1358 }
1359 
1360