Ignore:
Timestamp:
Jul 30, 2010, 4:47:27 PM (14 years ago)
Author:
rosiere
Message:
  • Add test for all configuration
  • RAT : add rat scheme (depth_save)
File:
1 edited

Legend:

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

    r123 r139  
    9494          log_printf(TRACE,Stat_List_unit,FUNCTION,"  * nb_spr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_spr_free,free_list_nb_spr_free,nb_spr_free,nb_spr_link,stat_list_nb_spr_link,nb_spr_use,stat_list_nb_spr_use);
    9595
    96           if (free_list_nb_gpr_free != stat_list_nb_gpr_free)
    97             throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free));
    98           if (free_list_nb_spr_free != stat_list_nb_spr_free)
    99             throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_spr_free,free_list_nb_spr_free));
    100 
    101           if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free))
    102             throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers."),nb_gpr_free,_nb_gpr_free));
    103 
    104           if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free))
    105             throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers."),nb_spr_free,_nb_spr_free));
     96          bool error_nb_gpr_free     = (free_list_nb_gpr_free != stat_list_nb_gpr_free);
     97          bool error_nb_spr_free     = (free_list_nb_spr_free != stat_list_nb_spr_free);
     98          bool error_rob_nb_gpr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free));
     99          bool error_rob_nb_spr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free));
     100
     101          std::string list_gpr_not_free;
     102          std::string list_spr_not_free;
     103
     104
     105          if (error_nb_gpr_free or
     106              error_rob_nb_gpr_free)
     107            for (uint32_t i=0; i<_param->_nb_bank; i++)
     108              for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
     109                if (not gpr_stat_list [i][j]._is_free)
     110                  list_gpr_not_free+=toString((i<<_param->_shift_gpr)|j)+" ";   
     111
     112          if (error_nb_spr_free or
     113              error_rob_nb_spr_free)
     114            for (uint32_t i=0; i<_param->_nb_bank; i++)
     115              for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
     116                if (not spr_stat_list [i][j]._is_free)
     117                  list_spr_not_free+=toString((i<<_param->_shift_spr)|j)+" ";   
     118
     119          if (error_nb_gpr_free)
     120            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (GPR not free : %s)\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free,list_gpr_not_free.c_str()));
     121          if (error_nb_spr_free)
     122            throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (SPR not free : %s)\n"),stat_list_nb_spr_free,free_list_nb_spr_free,list_spr_not_free.c_str()));
     123          if (error_rob_nb_gpr_free)
     124            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers. (GPR not free : %s)"),nb_gpr_free,_nb_gpr_free,list_gpr_not_free.c_str()));
     125
     126          if (error_rob_nb_spr_free)
     127            throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers. (SPR not free : %s)"),nb_spr_free,_nb_spr_free,list_gpr_not_free.c_str()));
    106128        }
    107129#endif
Note: See TracChangeset for help on using the changeset viewer.