Changeset 98 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_branch_complete.cpp
- Timestamp:
- Dec 31, 2008, 11:18:08 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_branch_complete.cpp
r97 r98 40 40 Tbranch_condition_t condition = reg_UPDATE_PREDICTION_TABLE [context][depth]._condition ; 41 41 42 Tcontrol_t flag = PORT_READ(in_BRANCH_COMPLETE_FLAG[i]);42 Tcontrol_t no_sequence = PORT_READ(in_BRANCH_COMPLETE_NO_SEQUENCE [i]); 43 43 Taddress_t addr_good = PORT_READ(in_BRANCH_COMPLETE_ADDRESS [i]); 44 44 … … 46 46 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * depth : %d",depth ); 47 47 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * condition : %s",toString(condition).c_str()); 48 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * flag : %d",flag);48 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * no_sequence : %d",no_sequence); 49 49 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * address_good : %.8x",addr_good); 50 50 … … 74 74 } 75 75 case BRANCH_CONDITION_FLAG_UNSET : // l.bnf 76 {77 //addr_dest : compute in decod stage78 //miss if the direction is bad79 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * BRANCH_CONDITION_FLAG_UNSET");80 81 Tcontrol_t take_good = not flag; // flag set = not take82 83 miss = (take != take_good);84 take = take_good;85 86 #ifdef DEBUG_TEST87 // if (addr_dest != addr_good)88 // throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));89 #endif90 91 break;92 }93 76 case BRANCH_CONDITION_FLAG_SET : // l.bf 94 77 { 95 78 //addr_dest : compute in decod stage 96 79 //miss if the direction is bad 97 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * BRANCH_CONDITION_FLAG _SET");80 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * BRANCH_CONDITION_FLAG"); 98 81 99 Tcontrol_t take_good = flag; // flag set = take 82 // Tcontrol_t take_good = not flag; // flag set = not take 83 // Tcontrol_t take_good = flag; // flag set = take 84 Tcontrol_t take_good = no_sequence; 100 85 101 86 miss = (take != take_good);
Note: See TracChangeset
for help on using the changeset viewer.