Changeset 107 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp
- Timestamp:
- Feb 11, 2009, 12:03:25 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_transition.cpp
r106 r107 422 422 423 423 // In all case : update good_take 424 reg_UPDATE_PREDICTION_TABLE [context][depth]._good_take = good_take; 424 reg_UPDATE_PREDICTION_TABLE [context][depth]._good_take = good_take; 425 426 // Write address_dest if need read register 427 Tbranch_condition_t condition = reg_UPDATE_PREDICTION_TABLE [context][depth]._condition; 428 429 if ((condition == BRANCH_CONDITION_READ_REGISTER_WITHOUT_WRITE_STACK) or 430 (condition == BRANCH_CONDITION_READ_REGISTER_WITH_WRITE_STACK ) or 431 (condition == BRANCH_CONDITION_READ_STACK ) ) 432 reg_UPDATE_PREDICTION_TABLE [context][depth]._address_dest = good_addr; 425 433 } 426 434 … … 599 607 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * BRANCH_EVENT [%d] - Accepted",i); 600 608 601 #ifdef DEBUG_TEST 602 if (reg_EVENT_STATE [i] != EVENT_STATE_UPDATE_CONTEXT) 603 throw ERRORMORPHEO(FUNCTION,_("Decod : invalid event state.")); 604 #endif 605 606 // Change state 607 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * EVENT [%d] <- EVENT_STATE_WAIT_END_EVENT (branch_event)",i); 608 609 reg_EVENT_STATE [i] = EVENT_STATE_WAIT_END_EVENT; 609 // if different : an other branch is occured 610 if (reg_EVENT_STATE [i] == EVENT_STATE_UPDATE_CONTEXT) 611 { 612 // Change state 613 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * EVENT [%d] <- EVENT_STATE_WAIT_END_EVENT (branch_event)",i); 614 615 reg_EVENT_STATE [i] = EVENT_STATE_WAIT_END_EVENT; 616 } 610 617 } 611 618 … … 866 873 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * reg_UFPT_NB_UPDATE : %d",reg_UFPT_NB_UPDATE [i]); 867 874 for (uint32_t j=0; j<_param->_size_ufpt_queue[i]; j++) 868 log_printf(TRACE,Update_Prediction_Table,FUNCTION," [%d] %.4d, %.8x %.8x, %.1d %.1d, %.8d %.8x%.4d - %s",875 log_printf(TRACE,Update_Prediction_Table,FUNCTION," [%d] %.4d, %.8x (%.8x) %.8x (%.8x), %.1d %.1d, %.8d %.8x (%.8x) %.4d - %s", 869 876 j, 870 877 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._condition, 871 878 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_src, 879 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_src<<2, 872 880 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_dest, 881 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_dest<<2, 873 882 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._last_take, 874 883 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._is_accurate, 875 884 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._history, 876 885 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_ras, 886 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._address_ras<<2, 877 887 reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._index_ras, 878 888 toString(reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._state).c_str() … … 886 896 log_printf(TRACE,Update_Prediction_Table,FUNCTION," * reg_UPT_EMPTY : %d",reg_UPT_EMPTY [i]); 887 897 for (uint32_t j=0; j<_param->_size_upt_queue[i]; j++) 888 log_printf(TRACE,Update_Prediction_Table,FUNCTION," [%d] %.4d, %.8x %.8x, %.1d %.1d %.1d, %.8d %.8x%.4d - %s",898 log_printf(TRACE,Update_Prediction_Table,FUNCTION," [%d] %.4d, %.8x (%.8x) %.8x (%.8x), %.1d %.1d %.1d, %.8d %.8x (%.8x) %.4d - %s", 889 899 j, 890 900 reg_UPDATE_PREDICTION_TABLE [i][j]._condition, 891 901 reg_UPDATE_PREDICTION_TABLE [i][j]._address_src, 902 reg_UPDATE_PREDICTION_TABLE [i][j]._address_src<<2, 892 903 reg_UPDATE_PREDICTION_TABLE [i][j]._address_dest, 904 reg_UPDATE_PREDICTION_TABLE [i][j]._address_dest<<2, 893 905 reg_UPDATE_PREDICTION_TABLE [i][j]._last_take, 894 906 reg_UPDATE_PREDICTION_TABLE [i][j]._good_take, … … 896 908 reg_UPDATE_PREDICTION_TABLE [i][j]._history, 897 909 reg_UPDATE_PREDICTION_TABLE [i][j]._address_ras, 910 reg_UPDATE_PREDICTION_TABLE [i][j]._address_ras<<2, 898 911 reg_UPDATE_PREDICTION_TABLE [i][j]._index_ras, 899 912 toString(reg_UPDATE_PREDICTION_TABLE [i][j]._state).c_str()
Note: See TracChangeset
for help on using the changeset viewer.