There are some style issues with this code, although it looks like they might partially be holdovers from the original code. There should be spaces before and after the "="s, the "if", the ">=", and after the ")" and the ","s. "else" should be on the same line as the closing bracket of the if, and you probably should put the code under it in brackets since the "if" part is in brackets.
Gabe Maximilien Breughe wrote: > # HG changeset patch > # User Maximilien Breughe <[email protected]> > # Date 1271144284 -7200 > # Branch dev-perflab > # Node ID 401bc1d45798b11db33cf5c995c7c44fceacc4c3 > # Parent 9342cbe0c2c9fd94300a3762f518f3d4313f2951 > Bug fix: Another branch predictor fix > ============================ > > Branches can cause squashes for 2 reasons: > 1) branch prediction > 2) branch resolution > > Prediction happens in the Decode-stage. At this point, no information is > known about what path is taken. > Therefore a squash caused at prediction-time should not update the branch > predictor and hence the bug fix. > > Only squashes resulting from the branch resolution (in the Execution-stage) > can update the branch predictor. > > Another possibility was to update the branch predictor only at the > graduation-stage. > > diff -r 9342cbe0c2c9 -r 401bc1d45798 > src/cpu/inorder/resources/branch_predictor.cc > --- a/src/cpu/inorder/resources/branch_predictor.cc Fri Mar 26 09:57:52 > 2010 +0100 > +++ b/src/cpu/inorder/resources/branch_predictor.cc Tue Apr 13 09:38:04 > 2010 +0200 > @@ -142,10 +142,13 @@ > InstSeqNum squash_seq_num, ThreadID tid) > { > DPRINTF(InOrderBPred, "Squashing...\n"); > - Addr corr_targ=inst->readPredPC(); > - bool taken=inst->predTaken(); > - branchPred.squash(squash_seq_num,corr_targ,taken,tid); > -// branchPred.squash(squash_seq_num,tid); > + if(squash_stage>=ThePipeline::BackEndStartStage){ > + Addr corr_targ=inst->readPredPC(); > + bool taken=inst->predTaken(); > + branchPred.squash(squash_seq_num,corr_targ,taken,tid); > + } > + else > + branchPred.squash(squash_seq_num,tid); > } > > void > _______________________________________________ > m5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/m5-dev > _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
