Deleted Added
sdiff udiff text old ( 13627:ec1395943cd2 ) new ( 13685:bb3377c81303 )
full compact
1/*
2 * Copyright (c) 2014 The University of Wisconsin
3 *
4 * Copyright (c) 2006 INRIA (Institut National de Recherche en
5 * Informatique et en Automatique / French National Research Institute
6 * for Computer Science and Applied Mathematics)
7 *
8 * All rights reserved.

--- 166 unchanged lines hidden (view full) ---

175
176 /**
177 * Updates the loop predictor.
178 * @param pc The unshifted branch PC.
179 * @param taken The actual branch outcome.
180 * @param bi Pointer to information on the
181 * prediction recorded at prediction time.
182 * @param tage_pred tage prediction of the branch
183 * @param random0 random value
184 * @param random1 random value
185 * @param random2 random value
186 */
187 void loopUpdate(Addr pc, bool Taken, BranchInfo* bi, bool tage_pred,
188 int random0, int random1, int random2);
189
190 /**
191 * Speculatively updates the loop predictor
192 * iteration count (only for useSpeculation).
193 * @param taken The predicted branch outcome.
194 * @param bi Pointer to information on the prediction
195 * recorded at prediction time.
196 */
197 void specLoopUpdate(bool taken, BranchInfo* bi);
198
199 /**
200 * Update LTAGE for conditional branches.
201 * @param branch_pc The unshifted branch PC.
202 * @param taken Actual branch outcome.
203 * @param tage_pred Prediction from TAGE
204 * @param bi Pointer to information on the prediction
205 * recorded at prediction time.
206 * @param instShiftAmt Number of bits to shift instructions
207 * @param rand0 Random integer value
208 * @param rand1 Random integer value
209 * @param rand2 Random integer value
210 */
211 void condBranchUpdate(
212 ThreadID tid, Addr branch_pc, bool taken, bool tage_pred,
213 BranchInfo* bi, unsigned instShiftAmt, int rand0, int rand1,
214 int rand2);
215
216 /**
217 * Get the loop prediction
218 * @param tid The thread ID to select the global
219 * histories to use.
220 * @param branch_pc The unshifted branch PC.
221 * @param cond_branch True if the branch is conditional.
222 * @param bi Reference to wrapping pointer to allow storing

--- 16 unchanged lines hidden (view full) ---

239 void updateStats(bool taken, BranchInfo* bi);
240
241 void squashLoop(BranchInfo * bi);
242
243 void squash(ThreadID tid, BranchInfo *bi);
244
245 virtual bool calcConf(int index) const;
246
247 virtual bool optionalAgeInc(int nrand) const;
248
249 virtual BranchInfo *makeBranchInfo();
250
251 /**
252 * Gets the value of the loop use counter
253 * @return the loop use counter value
254 */
255 int8_t getLoopUseCounter() const

--- 17 unchanged lines hidden ---