@@ -153,83 +153,89 @@ namespace olympia
153
153
// Counters -- this is only supported in C++11 -- uses
154
154
// Counter's move semantics
155
155
std::array<sparta::CycleCounter, N_STALL_REASONS> stall_counters_{
156
- {sparta::CycleCounter (getStatisticSet (), " stall_cmov_busy" , " CMOV busy" ,
157
- sparta::Counter::COUNT_NORMAL, getClock ()),
158
- sparta::CycleCounter (getStatisticSet (), " stall_div_busy" , " DIV busy" ,
159
- sparta::Counter::COUNT_NORMAL, getClock ()),
160
- sparta::CycleCounter (getStatisticSet (), " stall_faddsub_busy" , " FADDSUB busy" ,
161
- sparta::Counter::COUNT_NORMAL, getClock ()),
162
- sparta::CycleCounter (getStatisticSet (), " stall_float_busy" , " FLOAT busy" ,
163
- sparta::Counter::COUNT_NORMAL, getClock ()),
164
- sparta::CycleCounter (getStatisticSet (), " stall_fmac_busy" , " FMAC busy" ,
165
- sparta::Counter::COUNT_NORMAL, getClock ()),
166
- sparta::CycleCounter (getStatisticSet (), " stall_i2f_busy" , " I2F busy" ,
167
- sparta::Counter::COUNT_NORMAL, getClock ()),
168
- sparta::CycleCounter (getStatisticSet (), " stall_f2i_busy" , " F2I busy" ,
169
- sparta::Counter::COUNT_NORMAL, getClock ()),
170
- sparta::CycleCounter (getStatisticSet (), " stall_int_busy" , " INT busy" ,
171
- sparta::Counter::COUNT_NORMAL, getClock ()),
172
- sparta::CycleCounter (getStatisticSet (), " stall_lsu_busy" , " LSU busy" ,
173
- sparta::Counter::COUNT_NORMAL, getClock ()),
174
- sparta::CycleCounter (getStatisticSet (), " stall_mul_busy" , " MUL busy" ,
175
- sparta::Counter::COUNT_NORMAL, getClock ()),
176
- sparta::CycleCounter (getStatisticSet (), " stall_br_busy" , " BR busy" ,
177
- sparta::Counter::COUNT_NORMAL, getClock ()),
178
- sparta::CycleCounter (getStatisticSet (), " stall_vint_busy" , " VINT busy" ,
179
- sparta::Counter::COUNT_NORMAL, getClock ()),
156
+ {
157
+ sparta::CycleCounter (getStatisticSet (), " stall_br_busy" , " BR busy" ,
158
+ sparta::Counter::COUNT_NORMAL, getClock ()),
159
+ sparta::CycleCounter (getStatisticSet (), " stall_cmov_busy" , " CMOV busy" ,
160
+ sparta::Counter::COUNT_NORMAL, getClock ()),
161
+ sparta::CycleCounter (getStatisticSet (), " stall_div_busy" , " DIV busy" ,
162
+ sparta::Counter::COUNT_NORMAL, getClock ()),
163
+ sparta::CycleCounter (getStatisticSet (), " stall_faddsub_busy" , " FADDSUB busy" ,
164
+ sparta::Counter::COUNT_NORMAL, getClock ()),
165
+ sparta::CycleCounter (getStatisticSet (), " stall_float_busy" , " FLOAT busy" ,
166
+ sparta::Counter::COUNT_NORMAL, getClock ()),
167
+ sparta::CycleCounter (getStatisticSet (), " stall_fmac_busy" , " FMAC busy" ,
168
+ sparta::Counter::COUNT_NORMAL, getClock ()),
169
+ sparta::CycleCounter (getStatisticSet (), " stall_i2f_busy" , " I2F busy" ,
170
+ sparta::Counter::COUNT_NORMAL, getClock ()),
171
+ sparta::CycleCounter (getStatisticSet (), " stall_f2i_busy" , " F2I busy" ,
172
+ sparta::Counter::COUNT_NORMAL, getClock ()),
173
+ sparta::CycleCounter (getStatisticSet (), " stall_int_busy" , " INT busy" ,
174
+ sparta::Counter::COUNT_NORMAL, getClock ()),
175
+ sparta::CycleCounter (getStatisticSet (), " stall_lsu_busy" , " LSU busy" ,
176
+ sparta::Counter::COUNT_NORMAL, getClock ()),
177
+ sparta::CycleCounter (getStatisticSet (), " stall_mul_busy" , " MUL busy" ,
178
+ sparta::Counter::COUNT_NORMAL, getClock ()),
179
+ sparta::CycleCounter (getStatisticSet (), " stall_vint_busy" , " VINT busy" ,
180
+ sparta::Counter::COUNT_NORMAL, getClock ()),
180
181
sparta::CycleCounter (getStatisticSet (), " stall_vfixed_busy" , " VFIXED busy" ,
181
182
sparta::Counter::COUNT_NORMAL, getClock ()),
182
- sparta::CycleCounter (getStatisticSet (), " stall_vmask_busy" , " VMASK busy" ,
183
- sparta::Counter::COUNT_NORMAL, getClock ()),
184
- sparta::CycleCounter (getStatisticSet (), " stall_vmul_busy" , " VMUL busy" ,
185
- sparta::Counter::COUNT_NORMAL, getClock ()),
186
- sparta::CycleCounter (getStatisticSet (), " stall_vdiv_busy" , " VDIV busy" ,
187
- sparta::Counter::COUNT_NORMAL, getClock ()),
188
- sparta::CycleCounter (getStatisticSet (), " stall_vset_busy" , " VSET busy" ,
189
- sparta::Counter::COUNT_NORMAL, getClock ()),
190
- sparta::CycleCounter (getStatisticSet (), " stall_sys_busy" , " No credits from ROB" ,
191
- sparta::Counter::COUNT_NORMAL, getClock ()),
192
- sparta::CycleCounter (getStatisticSet (), " stall_not_stalled" ,
193
- " Dispatch not stalled, all instructions dispatched" ,
194
- sparta::Counter::COUNT_NORMAL, getClock ())}};
183
+ sparta::CycleCounter (getStatisticSet (), " stall_vmask_busy" , " VMASK busy" ,
184
+ sparta::Counter::COUNT_NORMAL, getClock ()),
185
+ sparta::CycleCounter (getStatisticSet (), " stall_vmul_busy" , " VMUL busy" ,
186
+ sparta::Counter::COUNT_NORMAL, getClock ()),
187
+ sparta::CycleCounter (getStatisticSet (), " stall_vdiv_busy" , " VDIV busy" ,
188
+ sparta::Counter::COUNT_NORMAL, getClock ()),
189
+ sparta::CycleCounter (getStatisticSet (), " stall_vset_busy" , " VSET busy" ,
190
+ sparta::Counter::COUNT_NORMAL, getClock ()),
191
+ sparta::CycleCounter (getStatisticSet (), " stall_rob_full" , " No credits from ROB" ,
192
+ sparta::Counter::COUNT_NORMAL, getClock ()),
193
+ sparta::CycleCounter (getStatisticSet (), " stall_not_stalled" ,
194
+ " Dispatch not stalled, all instructions dispatched" ,
195
+ sparta::Counter::COUNT_NORMAL, getClock ())
196
+ }
197
+ };
195
198
196
199
std::array<sparta::Counter, InstArchInfo::N_TARGET_PIPES> unit_distribution_{
197
- {sparta::Counter (getStatisticSet (), " count_cmov_insts" , " Total CMOV insts" ,
198
- sparta::Counter::COUNT_NORMAL),
199
- sparta::Counter (getStatisticSet (), " count_div_insts" , " Total DIV insts" ,
200
- sparta::Counter::COUNT_NORMAL),
201
- sparta::Counter (getStatisticSet (), " count_faddsub_insts" , " Total FADDSUB insts" ,
202
- sparta::Counter::COUNT_NORMAL),
203
- sparta::Counter (getStatisticSet (), " count_float_insts" , " Total FLOAT insts" ,
204
- sparta::Counter::COUNT_NORMAL),
205
- sparta::Counter (getStatisticSet (), " count_fmac_insts" , " Total FMAC insts" ,
206
- sparta::Counter::COUNT_NORMAL),
207
- sparta::Counter (getStatisticSet (), " count_i2f_insts" , " Total I2F insts" ,
208
- sparta::Counter::COUNT_NORMAL),
209
- sparta::Counter (getStatisticSet (), " count_f2i_insts" , " Total F2I insts" ,
210
- sparta::Counter::COUNT_NORMAL),
211
- sparta::Counter (getStatisticSet (), " count_int_insts" , " Total INT insts" ,
212
- sparta::Counter::COUNT_NORMAL),
213
- sparta::Counter (getStatisticSet (), " count_lsu_insts" , " Total LSU insts" ,
214
- sparta::Counter::COUNT_NORMAL),
215
- sparta::Counter (getStatisticSet (), " count_mul_insts" , " Total MUL insts" ,
216
- sparta::Counter::COUNT_NORMAL),
217
- sparta::Counter (getStatisticSet (), " count_br_insts" , " Total BR insts" ,
218
- sparta::Counter::COUNT_NORMAL),
219
- sparta::Counter (getStatisticSet (), " count_vint_insts" , " Total VINT insts" ,
200
+ {
201
+ sparta::Counter (getStatisticSet (), " count_br_insts" , " Total BR insts" ,
202
+ sparta::Counter::COUNT_NORMAL),
203
+ sparta::Counter (getStatisticSet (), " count_cmov_insts" , " Total CMOV insts" ,
204
+ sparta::Counter::COUNT_NORMAL),
205
+ sparta::Counter (getStatisticSet (), " count_div_insts" , " Total DIV insts" ,
206
+ sparta::Counter::COUNT_NORMAL),
207
+ sparta::Counter (getStatisticSet (), " count_faddsub_insts" , " Total FADDSUB insts" ,
208
+ sparta::Counter::COUNT_NORMAL),
209
+ sparta::Counter (getStatisticSet (), " count_float_insts" , " Total FLOAT insts" ,
210
+ sparta::Counter::COUNT_NORMAL),
211
+ sparta::Counter (getStatisticSet (), " count_fmac_insts" , " Total FMAC insts" ,
212
+ sparta::Counter::COUNT_NORMAL),
213
+ sparta::Counter (getStatisticSet (), " count_i2f_insts" , " Total I2F insts" ,
214
+ sparta::Counter::COUNT_NORMAL),
215
+ sparta::Counter (getStatisticSet (), " count_f2i_insts" , " Total F2I insts" ,
216
+ sparta::Counter::COUNT_NORMAL),
217
+ sparta::Counter (getStatisticSet (), " count_int_insts" , " Total INT insts" ,
218
+ sparta::Counter::COUNT_NORMAL),
219
+ sparta::Counter (getStatisticSet (), " count_lsu_insts" , " Total LSU insts" ,
220
+ sparta::Counter::COUNT_NORMAL),
221
+ sparta::Counter (getStatisticSet (), " count_mul_insts" , " Total MUL insts" ,
222
+ sparta::Counter::COUNT_NORMAL),
223
+ sparta::Counter (getStatisticSet (), " count_vint_insts" , " Total VINT insts" ,
220
224
sparta::Counter::COUNT_NORMAL),
221
225
sparta::Counter (getStatisticSet (), " count_vfixed_insts" , " Total VFIXED insts" ,
222
- sparta::Counter::COUNT_NORMAL),
223
- sparta::Counter (getStatisticSet (), " count_vmask_insts" , " Total VMASK insts" ,
224
- sparta::Counter::COUNT_NORMAL),
225
- sparta::Counter (getStatisticSet (), " count_vmul_insts" , " Total VMUL insts" ,
226
- sparta::Counter::COUNT_NORMAL),
227
- sparta::Counter (getStatisticSet (), " count_vdiv_insts" , " Total VDIV insts" ,
228
- sparta::Counter::COUNT_NORMAL),
229
- sparta::Counter (getStatisticSet (), " count_vset_insts" , " Total VSET insts" ,
230
- sparta::Counter::COUNT_NORMAL),
231
- sparta::Counter (getStatisticSet (), " count_sys_insts" , " Total SYS insts" ,
232
- sparta::Counter::COUNT_NORMAL)}};
226
+ sparta::Counter::COUNT_NORMAL),
227
+ sparta::Counter (getStatisticSet (), " count_vmask_insts" , " Total VMASK insts" ,
228
+ sparta::Counter::COUNT_NORMAL),
229
+ sparta::Counter (getStatisticSet (), " count_vmul_insts" , " Total VMUL insts" ,
230
+ sparta::Counter::COUNT_NORMAL),
231
+ sparta::Counter (getStatisticSet (), " count_vdiv_insts" , " Total VDIV insts" ,
232
+ sparta::Counter::COUNT_NORMAL),
233
+ sparta::Counter (getStatisticSet (), " count_vset_insts" , " Total VSET insts" ,
234
+ sparta::Counter::COUNT_NORMAL),
235
+ sparta::Counter (getStatisticSet (), " count_sys_insts" , " Total SYS insts" ,
236
+ sparta::Counter::COUNT_NORMAL)
237
+ }
238
+ };
233
239
234
240
// As an example, this is a context counter that does the same
235
241
// thing as the unit_distribution counter, albeit a little
0 commit comments