Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / uarch / tlu / src / fcwt.j
CommitLineData
86530b38
AT
1
2// My custom weight file template.
3// Weights available are : wt_hig, wt_med, wt_low, wt_nul
4//
5inst: trap_asr %rvar wt_low
6 | trap_asi %rvar wt_low
7 | tcc %rvar wt_low
8 | ldst_excp %rvar wt_med
9 | ldstasi_excp %rvar wt_med
10 | ldstasi_excp_z %rvar wt_med
11 | change_mode %rvar wt_low
12 | alu %rvar wt_low
13 | branches %rvar wt_high
14 | wrasi %rvar wt_low
15 | splash_fprs %rvar wt_low
16 | splash_pstate %rvar wt_med
17 | splash_hpstate %rvar wt_med
18 | splash_cwp %rvar wt_nul
19 | splash_gl %rvar wt_low
20 | splash_tt %rvar wt_nul
21 | stores %rvar wt_high
22 | sir %rvar wt_low
23 | splash_tick %rvar wt_med
24 | splash_cmpr %rvar wt_med
25 | splash_tba %rvar wt_med
26 | splash_htba %rvar wt_low
27 | splash_lsucnt %rvar wt_high
28 //| splash_decr %rvar wt_nul
29 | demap %rvar wt_high
30 | tagged %rvar wt_nul
31 | intvec %rvar wt_high
32 | intveclr %rvar wt_med
33 | xir %rvar wt_low
34 | mondo %rvar wt_low
35 | ibp %rvar wt_low
36 | iaw %rvar wt_low
37 | dvapa %rvar wt_low
38 | cmp %rvar wt_high
39 | donret %rvar wt_med
40 | pmu %rvar wt_low
41#ijifndef NO_SPU
42 | cwq %rvar wt_med
43 | sma %rvar wt_low
44#ijendif
45 | memptr %rvar wt_high
46 | pwr %rvar wt_nul
47 | skip %rvar wt_high
48 | fpinit %rvar wt_low
49 | jmptr %rvar wt_high
50 //| invtsb %rvar wt_low
51 //| tglhtw %rvar wt_nul
52 | unsuptte %rvar wt_nul
53 | blksts %rvar wt_high
54 //| vahole %rvar wt_nul
55 | brcommon %rvar wt_high
56 //| cerer %rvar wt_nul
57 //| ceter %rvar wt_nul
58 | ticken %rvar wt_nul
59 | frzjmp %rvar wt_med
60 | cancelint %rvar wt_med
61;
62
63#ijifdef TH_STRESS
64stress : uLONG %ropr Ro_ldst_ptr | uBLK14 %ropr Ro_blksts | memptr_st
65;
66
67stress2 : intvec_st | uDBG3 %ropr Ro_ldst_ptr | uBLK14 %ropr Ro_blksts | loopz
68;
69
70memptr_st: tWRCCR_I
71 {
72 IJ_printf(th_stress, "memptr_%y_%d:\n", label);
73 if (label%3 == 0) { //
74 IJ_printf(th_stress, "\tset user_data_start, %%r31\n", Rv_memptr);
75 } else {
76 IJ_printf(th_stress, "\tset 0x%rx, %%r31\n", Rv_memptr);
77 }
78 label++;
79 }
80;
81intvec_st: uDIFFD
82 {
83 if (label%2) {
84 IJ_printf(th_stress, "\tnop\n\tnop\n\trd %%tick, %%r28\n");
85 IJ_printf(th_stress, "#if (defined PORTABLE_CORE || MAX_THREADS == 8)\n");
86 IJ_printf(th_stress, "\tsethi %%hi(0x3800), %%r27\n\tandn %%r28, %%r27, %%r28\n");
87 IJ_printf(th_stress, "#ifdef PORTABLE_CORE\n\t! Add CID to vector\n");
88 IJ_printf(th_stress, "\tta T_CHANGE_HPRIV\n");
89 IJ_printf(th_stress, "\tldxa [%%g0]0x63, %%r27\n\tsllx %%r27, 8, %%r27\n");
90 IJ_printf(th_stress, "\tor %%r27, %%r28, %%r28 \n#endif\n");
91 if(IJ_random()&0x1)
92 IJ_printf(th_stress, "\twrhpr %%g0, 0x%rx, %%hpstate ! ta T_CHANGE_NONHPRIV\n",Rv_wrhp_nonhp);
93 IJ_printf(th_stress, "#endif\n");
94 IJ_printf(th_stress, "\tsethi %%hi(0x30000), %%r27\n");
95 IJ_printf(th_stress, "\tandn %%r28, %%r27, %%r28\n");
96 if(label&0x1) {
97 IJ_printf(th_stress, "\tta T_CHANGE_HPRIV\n");
98 }
99 IJ_printf(th_stress, "\tstxa %%r28, [%%g0] 0x73\n");
100 } else {
101 IJ_printf(th_stress, "\tnop\n\tnop\n\tset 0x%x, %%r28\n", IJ_get_rvar_val32(Rv_intdisvec));
102 IJ_printf(th_stress, "#if (defined PORTABLE_CORE || MAX_THREADS == 8)\n");
103 IJ_printf(th_stress, "\tsethi %%hi(0x3800), %%r27\n\tandn %%r28, %%r27, %%r28\n");
104 IJ_printf(th_stress, "#ifdef PORTABLE_CORE\n\t! Add CID to vector\n");
105 IJ_printf(th_stress, "\tta T_CHANGE_HPRIV\n");
106 IJ_printf(th_stress, "\tldxa [%%g0]0x63, %%r27\n\tsllx %%r27, 8, %%r27\n");
107 IJ_printf(th_stress, "\tor %%r27, %%r28, %%r28 \n#endif\n");
108 if(IJ_random()&0x1)
109 IJ_printf(th_stress, "\twrhpr %%g0, 0x%rx, %%hpstate ! ta T_CHANGE_NONHPRIV\n",Rv_wrhp_nonhp);
110 IJ_printf(th_stress, "#endif\n" );
111
112 IJ_printf(th_stress, "\tstxa %%r28, [%%g0] 0x73\n");
113 }
114 if(random()&0x1) {
115 IJ_generate_from_token(1, th_stress, ijdefault, uDIFFD);
116 }
117 IJ_printf(th_stress, "intvec_st_%y_%d:\n", label);
118 label++;
119 }
120;
121#ijendif