Branch predictor: Fixes the tournament branch predictor.
authorMrinmoy Ghosh <Mrinmoy.Ghosh@arm.com>
Sun, 10 Jul 2011 17:56:08 +0000 (12:56 -0500)
committerMrinmoy Ghosh <Mrinmoy.Ghosh@arm.com>
Sun, 10 Jul 2011 17:56:08 +0000 (12:56 -0500)
commit3396fd9e84358346b60437a7635c9cc5f331017f
treec3586fbd23ab1212265eec9c65fb223e10b0618e
parentc7e7b890586ac6cf24f2ea6d8f3db936f0fe6e6d
Branch predictor: Fixes the tournament branch predictor.

Branch predictor could not predict a branch in a nested loop because:
 1. The global history was not updated after a mispredict squash.
 2. The global history was updated in the fetch stage. The choice predictors
    that were updated  used the changed global history. This is incorrect, as
    it incorporates the state of global history after the branch in
    encountered. Fixed update to choice predictor using the global history
    state before the branch happened.
 3. The global predictor table was also updated using the global history state
    before the branch happened as above.

Additionally, parameters to initialize ctr and history size were reversed.
src/cpu/pred/tournament.cc