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

Reply via email to