Ignore:
Timestamp:
Feb 9, 2009, 11:55:26 PM (15 years ago)
Author:
rosiere
Message:

1) RAT : Fix bug when update and event in same cycle
2) Context State : Compute depth
3) Load Store Unit : In check logic, translate all access in little endian. More easy to check
4) UFPT : End Event

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp

    r88 r106  
    7979
    8080#if (DEBUG >= DEBUG_TRACE) and (DEBUG_Free_List_unit == true)
    81         log_printf(TRACE,Free_List_unit,FUNCTION,"  * Dump Free List");
     81        {
     82          uint32_t limit = 4;
     83     
     84          log_printf(TRACE,Free_List_unit,FUNCTION,"  * Dump Free List");
     85         
     86          for (uint32_t i=0; i<_param->_nb_bank; ++i)
     87            {
     88              uint32_t j=0;
     89              for (std::list<Tgeneral_address_t>::iterator it=_gpr_list->begin();
     90                   it!=_gpr_list->end();
     91                   )
     92                {
     93                  std::string str = "";
     94             
     95                  for (uint32_t x=0; x<limit; x++)
     96                    {
     97                      if (it==_gpr_list->end())
     98                        break;
     99                      else
     100                        str+=toString("GPR[%.4d][%.4d] : %.5d | ",i,j,*it);
     101                      ++it;
     102                      ++j;
     103                    }
     104                  log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"      * %s",str.c_str());
     105                }
     106            }
    82107
    83         for (uint32_t i=0; i<_param->_nb_bank; ++i)
     108          for (uint32_t i=0; i<_param->_nb_bank; ++i)
     109            {
     110              uint32_t j=0;
     111              for (std::list<Tspecial_address_t>::iterator it=_spr_list->begin();
     112                   it!=_spr_list->end();
     113                   )
     114                {
     115                  std::string str = "";
     116
     117                  for (uint32_t x=0; x<limit; x++)
     118                    {
     119                      if (it==_spr_list->end())
     120                        break;
     121                      else
     122                        str+=toString("SPR[%.4d][%.4d] : %.5d | ",i,j,*it);
     123                      ++it;
     124                      ++j;
     125                    }
     126                  log_printf(TRACE,Register_Address_Translation_unit,FUNCTION,"      * %s",str.c_str());
     127                }
     128            }
     129        }
     130#endif
     131
     132#ifdef DEBUG_TEST
     133        if (1)
    84134          {
    85             uint32_t j=0;
    86             for (std::list<Tgeneral_address_t>::iterator it=_gpr_list->begin();
    87                  it!=_gpr_list->end();
    88                  ++it)
     135            for (std::list<Tgeneral_address_t>::iterator it1=_gpr_list->begin();
     136                 it1!=_gpr_list->end();
     137                 ++it1
     138                 )
    89139              {
    90                 log_printf(TRACE,Free_List_unit,FUNCTION,"    * GPR_LIST[%.5d][%.5d] : %.5d",i,j,*it);
    91                 ++j;
     140                std::list<Tgeneral_address_t>::iterator it2 = it1;
     141
     142                it2 ++;
     143                while (it2 != _gpr_list->end())
     144                  {
     145                    if (*it1 == *it2)
     146                      throw ERRORMORPHEO (FUNCTION,toString(_("In free list, Same GPR (%d)"),*it1));
     147                    it2 ++;
     148                  }
     149              }
     150
     151            for (std::list<Tspecial_address_t>::iterator it1=_spr_list->begin();
     152                 it1!=_spr_list->end();
     153                 ++it1
     154                 )
     155              {
     156                std::list<Tspecial_address_t>::iterator it2 = it1;
     157
     158                it2 ++;
     159                while (it2 != _spr_list->end())
     160                  {
     161                    if (*it1 == *it2)
     162                      throw ERRORMORPHEO (FUNCTION,toString(_("In free list, Same SPR (%d)"),*it1));
     163                    it2 ++;
     164                  }
    92165              }
    93166          }
    94         for (uint32_t i=0; i<_param->_nb_bank; ++i)
    95           {
    96             uint32_t j=0;
    97             for (std::list<Tspecial_address_t>::iterator it=_spr_list->begin();
    98                  it!=_spr_list->end();
    99                  ++it)
    100               {
    101                 log_printf(TRACE,Free_List_unit,FUNCTION,"    * SPR_LIST[%.5d][%.5d] : %.5d",i,j,*it);
    102                 ++j;
    103               }
    104           }
     167#endif
    105168
    106 #endif
    107169      }
    108170
Note: See TracChangeset for help on using the changeset viewer.