Changeset 118


Ignore:
Timestamp:
May 21, 2009, 12:01:32 AM (15 years ago)
Author:
rosiere
Message:

1) Stat List : scan all queue to find free register
2) Write_queue : test "genMealy" add bypass [0]
3) Functionnal_unit : add const parameters to add or not the pipeline_in
4) Load Store Unit : if load make an exception, free nb_check
5) Debug, change test to add model

Location:
trunk
Files:
163 added
69 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_fromFile.cpp

    r112 r118  
    8282            testSingleton  (xml,true);
    8383
    84             attributes_t      attributes = xml->getAttributes();
     84            attributes_t attributes = xml->getAttributes();
    8585           
    86             std::string       value_name  = getAttribute(xml,attributes,"name" );
    87             model_type_t      value_model = fromString<model_type_t     >(getAttribute(xml,attributes,"model"));
    88             debug_verbosity_t value_debug = fromString<debug_verbosity_t>(getAttribute(xml,attributes,"debug"));
     86            std::string  value_name  = getAttribute(xml,attributes,"name" );
     87            model_type_t value_model = fromString<model_type_t     >(getAttribute(xml,attributes,"model"));
     88            bool         value_debug = fromString<bool>(getAttribute(xml,attributes,"debug"));
    8989           
    9090            testAttributesEmpty(xml,attributes);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h

    r117 r118  
    209209
    210210    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     211  private   : uint32_t                        reg_PRIORITY ;
    211212
    212213    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_genMealy_issue.cpp

    r117 r118  
    142142                  for (uint32_t num_execute_loop=0; num_execute_loop<_param->_nb_execute_loop; ++num_execute_loop)
    143143                    {
    144                       for (uint32_t num_read_unit=0; num_read_unit<_param->_nb_read_unit[num_execute_loop]; ++num_read_unit)
     144                      for (uint32_t _num_read_unit=0; _num_read_unit<_param->_nb_read_unit[num_execute_loop]; ++_num_read_unit)
    145145                        {
     146                          uint32_t num_read_unit = (_num_read_unit+reg_PRIORITY)%_param->_nb_read_unit[num_execute_loop];
    146147                          Tcontrol_t ack = READ_UNIT_ENABLE [num_execute_loop][num_read_unit];
    147148                         
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_transition.cpp

    r117 r118  
    2929          }
    3030        _priority_ooo_engine->reset();
    31  
     31
     32        reg_PRIORITY = 0;
    3233      }
    3334    else
     
    4041          }
    4142        _priority_ooo_engine->transition();
     43
     44        reg_PRIORITY ++;
    4245      }
    4346
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h

    r116 r118  
    4040namespace execute_unit {
    4141namespace functionnal_unit {
    42 
    4342
    4443  class Functionnal_unit
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h

    r116 r118  
    4040//public : uint32_t            _size_load_queue              ;
    4141  public : const Tfunctionnal_unit_scheme_t _functionnal_unit_scheme;
     42  public : const bool                       _have_pipeline_in       ;
    4243
    4344  public : execute_timing_t ** _timing                       ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp

    r112 r118  
    104104     if (usage_is_set(_usage,USE_SYSTEMC))
    105105       {
     106     if (_param->_have_pipeline_in)
    106107     _execute_operation_in  = new execute_operation_t;
    107108     _execute_operation_out = new execute_operation_t;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp

    r115 r118  
    7777        DELETE3(_execute_register,_param->_nb_context,_param->_nb_front_end,_param->_nb_ooo_engine);
    7878        DELETE0(_execute_param);
     79        if (_param->_have_pipeline_in)
    7980        DELETE0(_execute_operation_in);
    8081        DELETE0(_execute_operation_out);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMealy.cpp

    r117 r118  
    2929      {
    3030        {
     31          // Can out if : have an instruction and is finish (latence == 0)
    3132          internal_EXECUTE_OUT_VAL = (reg_BUSY_OUT and (_execute_operation_out->_timing._latence == 0));
    3233         
    33           PORT_WRITE(out_EXECUTE_OUT_VAL          , internal_EXECUTE_OUT_VAL);
     34          PORT_WRITE(out_EXECUTE_OUT_VAL, internal_EXECUTE_OUT_VAL);
    3435        }
    3536       
    3637        {
     38          // Can accept an instruction if :
     39          //  * pipeline in is not busy (not previous instruction)
     40          //  * pipeline in is     busy (    previous instruction) and the instruction go to pipeline out
     41          if (_param->_have_pipeline_in)
     42            {         
    3743          internal_EXECUTE_IN_ACK = (not reg_BUSY_IN or
    3844                                     (reg_BUSY_IN and (not reg_BUSY_OUT or
    3945                                                       (internal_EXECUTE_OUT_VAL and PORT_READ(in_EXECUTE_OUT_ACK)))));
    40          
    41           PORT_WRITE(out_EXECUTE_IN_ACK           , internal_EXECUTE_IN_ACK);
     46            }
     47          else
     48            {
     49          internal_EXECUTE_IN_ACK = (not reg_BUSY_OUT or
     50                                     (internal_EXECUTE_OUT_VAL and PORT_READ(in_EXECUTE_OUT_ACK)));
     51            }
     52
     53          PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK);
    4254        }
    4355      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp

    r117 r118  
    2828    if (PORT_READ(in_NRESET) == 0)
    2929      {
     30        if (_param->_have_pipeline_in)
    3031        reg_BUSY_IN  = false;
    3132        reg_BUSY_OUT = false;
     
    5051    else
    5152      {
    52         // Test if pop
     53        // Test if pop an instruction
    5354        if (internal_EXECUTE_OUT_VAL and PORT_READ(in_EXECUTE_OUT_ACK))
    5455          {
    5556            log_printf(TRACE,Functionnal_unit,FUNCTION,"  * EXECUTE_OUT : Transaction Accepted");
    56             // transaction
    5757            reg_BUSY_OUT = false;
    5858          }
    5959       
    60 
     60        // Test if can move instruction in pipeline in to pipeline out
     61        if (_param->_have_pipeline_in)
    6162        if (reg_BUSY_IN and not reg_BUSY_OUT)
    6263          {
     
    8788          }
    8889
    89 
    90 
    9190        // Test if push
    9291        execute_register_t * execute_register = NULL;
     
    9695            log_printf(TRACE,Functionnal_unit,FUNCTION,"  * EXECUTE_IN : Transaction Accepted");
    9796
    98             reg_BUSY_IN = true;
     97            execute_operation_t * execute_operation;
     98
     99            if (_param->_have_pipeline_in)
     100              {
     101            reg_BUSY_IN       = true;
     102            execute_operation = _execute_operation_in;
     103              }
     104            else
     105              {
     106            reg_BUSY_OUT      = true;
     107            execute_operation = _execute_operation_out;
     108              }
    99109
    100110            Tcontext_t   context_id    = (_param->_have_port_context_id   )?PORT_READ(in_EXECUTE_IN_CONTEXT_ID   ):0;
     
    104114            Toperation_t operation     = PORT_READ(in_EXECUTE_IN_OPERATION);
    105115            Ttype_t      type          = PORT_READ(in_EXECUTE_IN_TYPE);
    106            
    107             _execute_operation_in->_context_id    = context_id   ;
    108             _execute_operation_in->_front_end_id  = front_end_id ;
    109             _execute_operation_in->_ooo_engine_id = ooo_engine_id;
    110             _execute_operation_in->_packet_id     = packet_id    ;
    111             _execute_operation_in->_operation     = operation    ;
    112             _execute_operation_in->_type          = type         ;
    113             _execute_operation_in->_has_immediat  = PORT_READ(in_EXECUTE_IN_HAS_IMMEDIAT);
    114             _execute_operation_in->_immediat      = PORT_READ(in_EXECUTE_IN_IMMEDIAT    );
    115             _execute_operation_in->_data_ra       = PORT_READ(in_EXECUTE_IN_DATA_RA     );
    116             _execute_operation_in->_data_rb       = PORT_READ(in_EXECUTE_IN_DATA_RB     );
    117             _execute_operation_in->_data_rc       = PORT_READ(in_EXECUTE_IN_DATA_RC     );
    118             _execute_operation_in->_write_rd      = PORT_READ(in_EXECUTE_IN_WRITE_RD    );
    119             _execute_operation_in->_num_reg_rd    = PORT_READ(in_EXECUTE_IN_NUM_REG_RD  );
    120             _execute_operation_in->_data_rd       = 0; // no necessaray
    121             _execute_operation_in->_write_re      = PORT_READ(in_EXECUTE_IN_WRITE_RE    );
    122             _execute_operation_in->_num_reg_re    = PORT_READ(in_EXECUTE_IN_NUM_REG_RE  );
    123             _execute_operation_in->_data_re       = 0; // no necessaray
    124 
    125             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * context_id    : %d",_execute_operation_in->_context_id   );
    126             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * front_end_id  : %d",_execute_operation_in->_front_end_id );
    127             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * ooo_engine_id : %d",_execute_operation_in->_ooo_engine_id);
    128             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * packet_id     : %d",_execute_operation_in->_packet_id    );
    129             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * operation     : %d",_execute_operation_in->_operation    );
    130             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * type          : %s",toString(_execute_operation_in->_type).c_str());
    131             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * has_immediat  : %d",_execute_operation_in->_has_immediat );
    132             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * immediat      : %.8x",_execute_operation_in->_immediat     );
    133             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_ra       : %.8x",_execute_operation_in->_data_ra      );
    134             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rb       : %.8x",_execute_operation_in->_data_rb      );
    135             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rc       : %.8x",_execute_operation_in->_data_rc      );
    136             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * write_rd      : %d"  ,_execute_operation_in->_write_rd     );
    137             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * num_reg_rd    : %d"  ,_execute_operation_in->_num_reg_rd   );
    138             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * write_re      : %d"  ,_execute_operation_in->_write_re     );
    139             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * num_reg_re    : %d"  ,_execute_operation_in->_num_reg_re   );
     116
     117            execute_operation->_context_id    = context_id   ;
     118            execute_operation->_front_end_id  = front_end_id ;
     119            execute_operation->_ooo_engine_id = ooo_engine_id;
     120            execute_operation->_packet_id     = packet_id    ;
     121            execute_operation->_operation     = operation    ;
     122            execute_operation->_type          = type         ;
     123            execute_operation->_has_immediat  = PORT_READ(in_EXECUTE_IN_HAS_IMMEDIAT);
     124            execute_operation->_immediat      = PORT_READ(in_EXECUTE_IN_IMMEDIAT    );
     125            execute_operation->_data_ra       = PORT_READ(in_EXECUTE_IN_DATA_RA     );
     126            execute_operation->_data_rb       = PORT_READ(in_EXECUTE_IN_DATA_RB     );
     127            execute_operation->_data_rc       = PORT_READ(in_EXECUTE_IN_DATA_RC     );
     128            execute_operation->_write_rd      = PORT_READ(in_EXECUTE_IN_WRITE_RD    );
     129            execute_operation->_num_reg_rd    = PORT_READ(in_EXECUTE_IN_NUM_REG_RD  );
     130            execute_operation->_data_rd       = 0; // no necessaray
     131            execute_operation->_write_re      = PORT_READ(in_EXECUTE_IN_WRITE_RE    );
     132            execute_operation->_num_reg_re    = PORT_READ(in_EXECUTE_IN_NUM_REG_RE  );
     133            execute_operation->_data_re       = 0; // no necessaray
     134
     135            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * context_id    : %d",execute_operation->_context_id   );
     136            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * front_end_id  : %d",execute_operation->_front_end_id );
     137            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * ooo_engine_id : %d",execute_operation->_ooo_engine_id);
     138            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * packet_id     : %d",execute_operation->_packet_id    );
     139            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * operation     : %d",execute_operation->_operation    );
     140            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * type          : %s",toString(execute_operation->_type).c_str());
     141            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * has_immediat  : %d",execute_operation->_has_immediat );
     142            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * immediat      : %.8x",execute_operation->_immediat     );
     143            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_ra       : %.8x",execute_operation->_data_ra      );
     144            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rb       : %.8x",execute_operation->_data_rb      );
     145            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rc       : %.8x",execute_operation->_data_rc      );
     146            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * write_rd      : %d"  ,execute_operation->_write_rd     );
     147            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * num_reg_rd    : %d"  ,execute_operation->_num_reg_rd   );
     148            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * write_re      : %d"  ,execute_operation->_write_re     );
     149            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * num_reg_re    : %d"  ,execute_operation->_num_reg_re   );
    140150           
    141151#ifdef DEBUG_TEST
     
    156166//                                                   ooo_engine_id,_param->_size_ooo_engine_id);
    157167
    158                 (*(_param->_get_custom_information()._get_custom_execute_genMoore(operation))) (_execute_operation_in, execute_register, _execute_param);
     168                (*(_param->_get_custom_information()._get_custom_execute_genMoore(operation))) (execute_operation, execute_register, _execute_param);
    159169              }
    160170            else
    161               (*(_function_execute[type][operation])) (_execute_operation_in, execute_register, _execute_param);
     171              (*(_function_execute[type][operation])) (execute_operation, execute_register, _execute_param);
    162172
    163173
    164174            log_printf(TRACE,Functionnal_unit,FUNCTION,"    -----------------");
    165             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * latence       : %.8x",_execute_operation_in->_timing._latence);
    166             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * delay         : %.8x",_execute_operation_in->_timing._delay);
    167             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rd       : %.8x",_execute_operation_in->_data_rd    );
    168             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_re       : %.8x",_execute_operation_in->_data_re    );
    169             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * exception     : %d"  ,_execute_operation_in->_exception  );
    170             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * no_sequence   : %d"  ,_execute_operation_in->_no_sequence);
    171             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * address       : %.8x (%.8x)",_execute_operation_in->_address,_execute_operation_in->_address<<2);
     175            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * latence       : %.8x",execute_operation->_timing._latence);
     176            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * delay         : %.8x",execute_operation->_timing._delay);
     177            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_rd       : %.8x",execute_operation->_data_rd    );
     178            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * data_re       : %.8x",execute_operation->_data_re    );
     179            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * exception     : %d"  ,execute_operation->_exception  );
     180            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * no_sequence   : %d"  ,execute_operation->_no_sequence);
     181            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * address       : %.8x (%.8x)",execute_operation->_address,execute_operation->_address<<2);
    172182
    173183#ifdef STATISTICS
     
    175185              {
    176186                (*_stat_use_functionnal_unit) ++;
    177                 (*_stat_sum_delay)   += _execute_operation_in->_timing._delay;
    178                 (*_stat_sum_latence) += _execute_operation_in->_timing._latence;
     187                (*_stat_sum_delay)   += execute_operation->_timing._delay;
     188                (*_stat_sum_latence) += execute_operation->_timing._latence;
    179189              }
    180190#endif
     
    213223        if (reg_BUSY_OUT and (_execute_operation_out->_timing._latence > 0))
    214224          _execute_operation_out->_timing._latence --;
     225
     226#if defined(DEBUG) and DEBUG_Functionnal_unit and (DEBUG >= DEBUG_TRACE)
     227        {
     228          log_printf(TRACE,Functionnal_unit,FUNCTION,"  * Dump ALU (Functionnal_unit)");
     229
     230          if (_param->_have_pipeline_in)
     231          log_printf(TRACE,Functionnal_unit,FUNCTION,"    * reg_BUSY_IN  : %d",reg_BUSY_IN );
     232          log_printf(TRACE,Functionnal_unit,FUNCTION,"    * reg_BUSY_OUT : %d",reg_BUSY_OUT);
     233        }
     234#endif
    215235      }
    216236   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters.cpp

    r116 r118  
    3333                          morpheo::behavioural::custom::custom_information_t (*get_custom_information) (void),
    3434                          bool               is_toplevel):
    35     _functionnal_unit_scheme (FUNCTIONNAL_UNIT_SCHEME_GLOBAL_REGISTERFILE)
     35    _functionnal_unit_scheme (FUNCTIONNAL_UNIT_SCHEME_GLOBAL_REGISTERFILE),
     36    _have_pipeline_in        (false)
    3637  {
    3738    log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_transition.cpp

    r117 r118  
    350350                // find a entry that it need a check
    351351                Tlsq_ptr_t index_store     = _load_queue[index_load]._store_queue_ptr_write;
    352                 Tlsq_ptr_t index_store_old = index_store;
     352//              Tlsq_ptr_t index_store_old = index_store;
    353353
    354354                // Init variable
     
    10911091                    _load_queue [packet_id]._exception = EXCEPTION_MEMORY_BUS_ERROR;
    10921092                    _load_queue [packet_id]._state     = LOAD_QUEUE_COMMIT;
     1093
     1094                   
     1095                    uint32_t i=_load_queue[packet_id]._store_queue_ptr_write;
     1096                    while (i!=reg_STORE_QUEUE_PTR_READ)
     1097                      {
     1098                        i=((i==0)?_param->_size_store_queue:i)-1;
     1099                       
     1100#ifdef DEBUG
     1101                        if (reg_STORE_QUEUE_NB_CHECK [i] == 0)
     1102                          throw ERRORMORPHEO(FUNCTION,_("reg_STORE_QUEUE_NB_CHECK must be > 0\n"));
     1103#endif
     1104                       
     1105                        reg_STORE_QUEUE_NB_CHECK [i] --;
     1106                        //i=(i+1)%_param->_size_store_queue;
     1107                      }
    10931108                  }
    10941109                else
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r98 r118  
    6060      log_printf(TRACE,Reservation_station,FUNCTION,"    * nb_elt : %d",_queue_control->nb_elt()); \
    6161      for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
    62         log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
    63                    (*_queue_control)[it_dump],                          \
    64                    _queue[(*_queue_control)[it_dump]]._context_id           , \
    65                    _queue[(*_queue_control)[it_dump]]._front_end_id         , \
    66                    _queue[(*_queue_control)[it_dump]]._ooo_engine_id        , \
    67                    _queue[(*_queue_control)[it_dump]]._rob_id               , \
    68                    _queue[(*_queue_control)[it_dump]]._type                 , \
    69                    _queue[(*_queue_control)[it_dump]]._operation            , \
    70                    _queue[(*_queue_control)[it_dump]]._store_queue_ptr_write, \
    71                    _queue[(*_queue_control)[it_dump]]._load_queue_ptr_write , \
    72                    _queue[(*_queue_control)[it_dump]]._has_immediat         , \
    73                    _queue[(*_queue_control)[it_dump]]._immediat             , \
    74                    _queue[(*_queue_control)[it_dump]]._num_reg_ra           , \
    75                    _queue[(*_queue_control)[it_dump]]._data_ra_val          , \
    76                    _queue[(*_queue_control)[it_dump]]._data_ra              , \
    77                    _queue[(*_queue_control)[it_dump]]._num_reg_rb           , \
    78                    _queue[(*_queue_control)[it_dump]]._data_rb_val          , \
    79                    _queue[(*_queue_control)[it_dump]]._data_rb              , \
    80                    _queue[(*_queue_control)[it_dump]]._num_reg_rc           , \
    81                    _queue[(*_queue_control)[it_dump]]._data_rc_val          , \
    82                    _queue[(*_queue_control)[it_dump]]._data_rc              , \
    83                    _queue[(*_queue_control)[it_dump]]._write_rd             , \
    84                    _queue[(*_queue_control)[it_dump]]._num_reg_rd           , \
    85                    _queue[(*_queue_control)[it_dump]]._write_re             , \
    86                    _queue[(*_queue_control)[it_dump]]._num_reg_re           , \
    87                    toString(_queue[(*_queue_control)[it_dump]]._type).c_str());       \
     62        if (it_dump < _queue_control->nb_elt())                         \
     63          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
     64                     (*_queue_control)[it_dump],                        \
     65                     _queue[(*_queue_control)[it_dump]]._context_id           , \
     66                     _queue[(*_queue_control)[it_dump]]._front_end_id         , \
     67                     _queue[(*_queue_control)[it_dump]]._ooo_engine_id        , \
     68                     _queue[(*_queue_control)[it_dump]]._rob_id               , \
     69                     _queue[(*_queue_control)[it_dump]]._type                 , \
     70                     _queue[(*_queue_control)[it_dump]]._operation            , \
     71                     _queue[(*_queue_control)[it_dump]]._store_queue_ptr_write, \
     72                     _queue[(*_queue_control)[it_dump]]._load_queue_ptr_write , \
     73                     _queue[(*_queue_control)[it_dump]]._has_immediat         , \
     74                     _queue[(*_queue_control)[it_dump]]._immediat             , \
     75                     _queue[(*_queue_control)[it_dump]]._num_reg_ra           , \
     76                     _queue[(*_queue_control)[it_dump]]._data_ra_val          , \
     77                     _queue[(*_queue_control)[it_dump]]._data_ra              , \
     78                     _queue[(*_queue_control)[it_dump]]._num_reg_rb           , \
     79                     _queue[(*_queue_control)[it_dump]]._data_rb_val          , \
     80                     _queue[(*_queue_control)[it_dump]]._data_rb              , \
     81                     _queue[(*_queue_control)[it_dump]]._num_reg_rc           , \
     82                     _queue[(*_queue_control)[it_dump]]._data_rc_val          , \
     83                     _queue[(*_queue_control)[it_dump]]._data_rc              , \
     84                     _queue[(*_queue_control)[it_dump]]._write_rd             , \
     85                     _queue[(*_queue_control)[it_dump]]._num_reg_rd           , \
     86                     _queue[(*_queue_control)[it_dump]]._write_re             , \
     87                     _queue[(*_queue_control)[it_dump]]._num_reg_re           , \
     88                     toString(_queue[(*_queue_control)[it_dump]]._type).c_str()); \
     89        else                                                            \
     90          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d]", \
     91                     (*_queue_control)[it_dump]);                       \
    8892    } while (0)
    8993#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h

    r115 r118  
    2424
    2525
     26
    2627  class Parameters : public morpheo::behavioural::Parameters
    2728  {
    2829    //-----[ fields ]------------------------------------------------------------
    29   public : uint32_t              _size_queue                   ;
    30   public : uint32_t              _nb_context                   ;
    31   public : uint32_t              _nb_front_end                 ;
    32   public : uint32_t              _nb_ooo_engine                ;
    33   public : uint32_t              _nb_packet                    ;
    34 //public : uint32_t              _size_general_data            ;
    35   public : uint32_t              _nb_general_register          ;
    36 //public : uint32_t              _size_special_data            ;
    37   public : uint32_t              _nb_special_register          ;
    38   public : uint32_t              _nb_bypass_write              ;
    39   public : Twrite_queue_scheme_t _queue_scheme                 ;
    40 
    41   public : uint32_t              _nb_gpr_write                 ;
    42   public : uint32_t              _nb_spr_write                 ;
    43                                
    44 //public : uint32_t              _size_context_id              ;
    45 //public : uint32_t              _size_front_end_id            ;
    46 //public : uint32_t              _size_ooo_engine_id           ;
    47 //public : uint32_t              _size_packet_id               ;
    48 //public : uint32_t              _size_general_register        ;
    49 //public : uint32_t              _size_special_register        ;
    50   public : uint32_t              _size_internal_queue          ;
    51                                
    52 //public : bool                  _have_port_context_id         ;
    53 //public : bool                  _have_port_front_end_id      ;
    54 //public : bool                  _have_port_ooo_engine_id      ;
    55 //public : bool                  _have_port_packet_id          ;
     30  public : uint32_t               _size_queue             ;
     31  public : uint32_t               _nb_context             ;
     32  public : uint32_t               _nb_front_end           ;
     33  public : uint32_t               _nb_ooo_engine          ;
     34  public : uint32_t               _nb_packet              ;
     35//public : uint32_t               _size_general_data      ;
     36  public : uint32_t               _nb_general_register    ;
     37//public : uint32_t               _size_special_data      ;
     38  public : uint32_t               _nb_special_register    ;
     39  public : uint32_t               _nb_bypass_write        ;
     40  public : Twrite_queue_scheme_t  _queue_scheme           ;
     41  public : Tbypass_write_scheme_t _bypass_write_scheme    ;
     42  public : uint32_t               _nb_gpr_write           ;
     43  public : uint32_t               _nb_spr_write           ;
     44                                  
     45//public : uint32_t               _size_context_id        ;
     46//public : uint32_t               _size_front_end_id      ;
     47//public : uint32_t               _size_ooo_engine_id     ;
     48//public : uint32_t               _size_packet_id         ;
     49//public : uint32_t               _size_general_register  ;
     50//public : uint32_t               _size_special_register  ;
     51  public : uint32_t               _size_internal_queue    ;
     52                                  
     53//public : bool                   _have_port_context_id   ;
     54//public : bool                   _have_port_front_end_id ;
     55//public : bool                   _have_port_ooo_engine_id;
     56//public : bool                   _have_port_packet_id    ;
    5657
    5758    //-----[ methods ]-----------------------------------------------------------
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h

    r115 r118  
    2525      ,WRITE_QUEUE_SCHEME_MEALY // Write register and pop can be in same cycle
    2626    } Twrite_queue_scheme_t;
     27
     28  typedef enum
     29    {
     30      BYPASS_WRITE_FROM_ALU,
     31      BYPASS_WRITE_FROM_QUEUE
     32    } Tbypass_write_scheme_t;
    2733
    2834  class write_queue_entry_t
     
    108114  };
    109115
     116  template<> inline std::string toString<morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t>(const morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t& x)
     117  {
     118    switch (x)
     119      {
     120      case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU   : return "alu"  ; break;
     121      case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE : return "queue"; break;
     122      default : return ""; break;
     123      }
     124  };
     125
     126  template<> inline morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t fromString<morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t>(const std::string& x)
     127  {
     128    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU))) == 0) or
     129         (x.compare("alu") == 0))
     130      return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU;
     131    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE))) == 0) or
     132         (x.compare("queue") == 0))
     133      return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE;
     134   
     135    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
     136  };
     137
    110138}; // end namespace morpheo             
    111139
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h

    r115 r118  
    172172  public  : void     transition                (void);
    173173  public  : void     genMoore                  (void);
    174   public  : void     genMealy                  (void);
     174  public  : void     genMealy_write            (void);
     175  public  : void     genMealy_bypass           (void);
    175176#endif                                         
    176177#ifdef STATISTICS
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp

    r115 r118  
    4545    _nb_bypass_write         = nb_bypass_write    ;
    4646    _queue_scheme            = queue_scheme       ;
     47    _bypass_write_scheme     = BYPASS_WRITE_FROM_ALU;
     48//  _bypass_write_scheme     = BYPASS_WRITE_FROM_QUEUE;
    4749
    4850    _nb_gpr_write            = 1;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp

    r113 r118  
    2828    Parameters_test test (_type);
    2929
    30     if (_nb_bypass_write > _size_queue)
     30    if ((_bypass_write_scheme == BYPASS_WRITE_FROM_ALU)   and (_nb_bypass_write > _size_queue))
    3131      test.error("The write_queue can't have more bypass_write than entry in the queue.\n");
     32    if ((_bypass_write_scheme == BYPASS_WRITE_FROM_QUEUE) and (_nb_bypass_write > _size_queue-1))
     33      test.error("The write_queue can't have more bypass_write than entry in the queue -1 (the write_queue[0] is unnecessary).\n");
    3234
    3335    log_printf(FUNC,Write_queue,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp

    r115 r118  
    9292        if (_param->_queue_scheme == WRITE_QUEUE_SCHEME_MEALY)
    9393          {
    94         log_printf(INFO,Write_queue,FUNCTION,"Method - genMealy");
     94        log_printf(INFO,Write_queue,FUNCTION,"Method - genMealy_write");
    9595
    96         SC_METHOD (genMealy);
     96        SC_METHOD (genMealy_write);
    9797        dont_initialize ();
    9898        sensitive << (*(in_CLOCK)).neg(); // need internal register
     
    106106# endif   
    107107          }
     108
     109        if ((_param->_bypass_write_scheme == BYPASS_WRITE_FROM_ALU) and
     110            (_param->_nb_bypass_write > 0))
     111          {
     112        log_printf(INFO,Write_queue,FUNCTION,"Method - genMealy_bypass");
     113
     114        SC_METHOD (genMealy_bypass);
     115        dont_initialize ();
     116//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     117        sensitive << (*(in_WRITE_QUEUE_IN_VAL          ))
     118                  << (*(in_WRITE_QUEUE_IN_WRITE_RD     ))
     119                  << (*(in_WRITE_QUEUE_IN_NUM_REG_RD   ))
     120                  << (*(in_WRITE_QUEUE_IN_DATA_RD      ))
     121                  << (*(in_WRITE_QUEUE_IN_WRITE_RE     ))
     122                  << (*(in_WRITE_QUEUE_IN_NUM_REG_RE   ))
     123                  << (*(in_WRITE_QUEUE_IN_DATA_RE      ));
     124        if (_param->_have_port_ooo_engine_id)
     125        sensitive << (*(in_WRITE_QUEUE_IN_OOO_ENGINE_ID));
     126
     127
     128# ifdef SYSTEMCASS_SPECIFIC
     129        // List dependency information
     130# endif   
     131          }
    108132
    109133#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp

    r116 r118  
    2020
    2121#undef  FUNCTION
    22 #define FUNCTION "Write_queue::genMealy"
    23   void Write_queue::genMealy (void)
     22#define FUNCTION "Write_queue::genMealy_write"
     23  void Write_queue::genMealy_write (void)
    2424  {
    2525    log_begin(Write_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp

    r117 r118  
    2929    {
    3030      std::list<write_queue_entry_t *>::iterator it = _queue->begin();
    31       for (uint32_t i=0; i<_param->_nb_bypass_write; i++)
     31
     32      // first bypass is the write_queue_in
     33      uint32_t first_index = ((_param->_bypass_write_scheme == BYPASS_WRITE_FROM_ALU)?1:0);
     34      for (uint32_t i=first_index; i<_param->_nb_bypass_write; i++)
    3235        {
    33           bool val     = i < _queue->size();
    34          
     36          // before because first slot is on {GPR|SPR}_WRITE. Also, take next
     37          if (it != _queue->end())
     38            it++;
     39
     40          uint32_t index = i;
     41//        bool val = (i+1) < _queue->size();
     42          bool val = (it != _queue->end());
     43
    3544          if (val)
    3645            {
    3746              if (_param->_have_port_ooo_engine_id)
    38               PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [i], (*it)->_ooo_engine_id);
    39               PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG   [i], (*it)->_num_reg_rd);
    40               PORT_WRITE(out_BYPASS_WRITE_GPR_DATA      [i], (*it)->_data_rd   );
    41               PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [i], (*it)->_num_reg_re);
    42               PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [i], (*it)->_data_re   );
     47              PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [index], (*it)->_ooo_engine_id);
     48              PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG   [index], (*it)->_num_reg_rd);
     49              PORT_WRITE(out_BYPASS_WRITE_GPR_DATA      [index], (*it)->_data_rd   );
     50              PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [index], (*it)->_num_reg_re);
     51              PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [index], (*it)->_data_re   );
    4352            }
    4453#ifdef SYSTEMC_VHDL_COMPATIBILITY
     
    4655            {
    4756              if (_param->_have_port_ooo_engine_id)
    48               PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [i], 0);
    49               PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG   [i], 0);
    50               PORT_WRITE(out_BYPASS_WRITE_GPR_DATA      [i], 0);
    51               PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [i], 0);
    52               PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [i], 0);
     57              PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [index], 0);
     58              PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG   [index], 0);
     59              PORT_WRITE(out_BYPASS_WRITE_GPR_DATA      [index], 0);
     60              PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [index], 0);
     61              PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [index], 0);
    5362            }
    5463#endif
    5564
    56           PORT_WRITE(out_BYPASS_WRITE_GPR_VAL       [i], val and (*it)->_write_rd  );
    57           PORT_WRITE(out_BYPASS_WRITE_SPR_VAL       [i], val and (*it)->_write_re  );
    58          
    59           if (it != _queue->end())
    60             it++;
     65          PORT_WRITE(out_BYPASS_WRITE_GPR_VAL       [index], val and (*it)->_write_rd  );
     66          PORT_WRITE(out_BYPASS_WRITE_SPR_VAL       [index], val and (*it)->_write_re  );
    6167        }
    6268    }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp

    r112 r118  
    138138      ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context);
    139139
    140       ALLOC1_SIGNAL_OUT(out_NB_INST_ALL    ,"all"      ,Tcontext_t         ,_param->_size_nb_inst_decod);
     140      ALLOC1_SIGNAL_OUT(out_NB_INST_ALL    ,"all"      ,Tcounter_t         ,_param->_size_nb_inst_decod);
    141141
    142142      ALLOC1_INTERFACE_END(_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h

    r110 r118  
    137137  public    : SC_IN (Tcontrol_t         )   *  in_CONTEXT_EVENT_ACK                  ;
    138138  public    : SC_OUT(Tcontext_t         )   * out_CONTEXT_EVENT_CONTEXT_ID           ;
    139   public    : SC_OUT(Tcontext_t         )   * out_CONTEXT_EVENT_DEPTH                ;
     139  public    : SC_OUT(Tdepth_t           )   * out_CONTEXT_EVENT_DEPTH                ;
    140140  public    : SC_OUT(Tevent_type_t      )   * out_CONTEXT_EVENT_TYPE                 ;
    141141  public    : SC_OUT(Tcontrol_t         )   * out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp

    r112 r118  
    149149      ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context);
    150150
    151       ALLOC1_SIGNAL_OUT(out_NB_INST_DECOD_ALL  ,"decod_all"   ,Tcontext_t         ,_param->_size_nb_inst_decod);
     151      ALLOC1_SIGNAL_OUT(out_NB_INST_DECOD_ALL  ,"decod_all"   ,Tcounter_t         ,_param->_size_nb_inst_decod);
    152152
    153153      ALLOC1_INTERFACE_END(_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_genMealy_decod.cpp

    r100 r118  
    2525    log_function(Return_Address_Stack,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET) == 1)
     28      {
    2729#ifdef DEBUG_TEST
    2830    // just to test if have many transaction on a same context
     
    6365        PORT_WRITE(out_DECOD_INDEX       [i], top);
    6466      }
    65 
     67      }
    6668    log_end(Return_Address_Stack,FUNCTION);
    6769  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_genMealy_predict.cpp

    r100 r118  
    2525    log_function(Return_Address_Stack,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET) == 1)
     28      {
    2729#ifdef DEBUG_TEST
    2830    // just to test if have many transaction on a same context
     
    6365
    6466        PORT_WRITE(out_PREDICT_ADDRESS_POP [i], reg_stack[context][top]._address);
     67
    6568        PORT_WRITE(out_PREDICT_INDEX       [i], top);
     69      }
    6670      }
    6771
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp

    r117 r118  
    342342      if (_param->_have_thread [i])
    343343        {
    344           std::string filename = MORPHEO_LOG+"/"+toString(getpid())+"-Instruction_flow-thread_"+toString(i)+"-"+toString(getpid())+".log";
     344          std::string filename = MORPHEO_LOG+"/"+toString(getpid())+"-Instruction_flow-thread_"+toString(i)+".log";
    345345         
    346346          instruction_log_file [i] .open(filename.c_str() ,std::ios::out | std::ios::trunc);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMoore.cpp

    r105 r118  
    2828    // ===================================================================
    2929    {
     30      log_printf(TRACE,Commit_unit,FUNCTION,"  * REEXECUTE [0]");
     31
    3032      // Store instruction comming Out Of Order in Load Store Unit.
    3133      // Must be executed in no speculative mode. Also, send a signal when an Store is in head of ROB
    3234
    33       Tcontrol_t val = false;
    34 
    35       if (not _rob[reg_NUM_BANK_HEAD].empty())
    36         {
    37           entry_t    * entry = _rob [reg_NUM_BANK_HEAD].front();
     35      Tcontrol_t val      = false;
     36      uint32_t   num_bank = reg_NUM_BANK_HEAD;
     37
     38      if (not _rob[num_bank].empty())
     39        {
     40          log_printf(TRACE,Commit_unit,FUNCTION,"    * ROB is not empty");
     41          log_printf(TRACE,Commit_unit,FUNCTION,"    * num_bank      : %d",num_bank);
     42
     43          entry_t    * entry = _rob [num_bank].front();
    3844          rob_state_t  state = entry->state;
    3945
     
    4147          val   = ((state == ROB_STORE_HEAD_OK) or
    4248                   (state == ROB_STORE_HEAD_KO));
    43          
     49
     50          log_printf(TRACE,Commit_unit,FUNCTION,"    * val           : %d",val);
    4451          if (val)
    4552            {
     53              Tpacket_t packet_id = ((entry->ptr << _param->_shift_num_slot) | num_bank);
     54
     55              log_printf(TRACE,Commit_unit,FUNCTION,"    * packet_id     : %d",packet_id);
     56         
    4657              // Reexecute store
    4758              if (_param->_have_port_context_id)
     
    5061              PORT_WRITE(out_REEXECUTE_FRONT_END_ID          [0], entry->front_end_id         );
    5162              if (_param->_have_port_rob_ptr  )
    52               PORT_WRITE(out_REEXECUTE_PACKET_ID             [0], entry->ptr                  );
     63              PORT_WRITE(out_REEXECUTE_PACKET_ID             [0], packet_id                   );
    5364              PORT_WRITE(out_REEXECUTE_TYPE                  [0], entry->type                 );
    5465              PORT_WRITE(out_REEXECUTE_STORE_QUEUE_PTR_WRITE [0], entry->store_queue_ptr_write);
     
    5869 
    5970      internal_REEXECUTE_VAL      [0] = val;
    60       internal_REEXECUTE_NUM_BANK [0] = reg_NUM_BANK_HEAD;
     71      internal_REEXECUTE_NUM_BANK [0] = num_bank;
    6172     
    6273      PORT_WRITE(out_REEXECUTE_VAL[0], internal_REEXECUTE_VAL [0]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_reexecute.cpp

    r98 r118  
    3434        Tcontrol_t ack;
    3535
     36        log_printf(TRACE,Reexecute_unit,FUNCTION,"  * REEXECUTE[%d]",i);
     37
    3638        if (not _reexecute_queue [i].empty() and (_reexecute_queue [i].front()->state == STATE_REEXECUTE))
    3739          {
     
    4042
    4143            entry_t * entry = _reexecute_queue [i].front();
     44            Tpacket_t packet_id = (_param->_have_port_rob_ptr)?entry->packet_id:0;
     45
     46            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * From Reexecute_queue");
     47            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * packet_id : %d",packet_id);
    4248
    4349            if (_param->_have_port_context_id)
     
    4652            PORT_WRITE(out_REEXECUTE_FRONT_END_ID          [i],entry->front_end_id  );
    4753            if (_param->_have_port_rob_ptr  )
    48             PORT_WRITE(out_REEXECUTE_PACKET_ID             [i],entry->packet_id     );
     54            PORT_WRITE(out_REEXECUTE_PACKET_ID             [i],       packet_id     );
    4955            PORT_WRITE(out_REEXECUTE_OPERATION             [i],entry->operation     );
    5056            PORT_WRITE(out_REEXECUTE_TYPE                  [i],entry->type          );
     
    6066            ack = PORT_READ(in_REEXECUTE_ACK     [i]);
    6167
     68            Tpacket_t packet_id = (_param->_have_port_rob_ptr)?PORT_READ(in_REEXECUTE_ROB_PACKET_ID [i]):0;
     69
     70            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * From ROB");
     71            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * val & ack : %d",val and ack);
     72            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * have ??   : %d",_param->_have_port_rob_ptr);
     73            log_printf(TRACE,Reexecute_unit,FUNCTION,"    * packet_id : %d",packet_id);
     74
    6275            if (_param->_have_port_context_id)
    6376            PORT_WRITE(out_REEXECUTE_CONTEXT_ID            [i], PORT_READ(in_REEXECUTE_ROB_CONTEXT_ID              [i]));
     
    6578            PORT_WRITE(out_REEXECUTE_FRONT_END_ID          [i], PORT_READ(in_REEXECUTE_ROB_FRONT_END_ID            [i]));
    6679            if (_param->_have_port_rob_ptr  )
    67             PORT_WRITE(out_REEXECUTE_PACKET_ID             [i], PORT_READ(in_REEXECUTE_ROB_PACKET_ID               [i]));
     80            PORT_WRITE(out_REEXECUTE_PACKET_ID             [i],                            packet_id                   );
    6881            PORT_WRITE(out_REEXECUTE_OPERATION             [i], PORT_READ(in_REEXECUTE_ROB_OPERATION               [i]));
    6982            PORT_WRITE(out_REEXECUTE_TYPE                  [i], PORT_READ(in_REEXECUTE_ROB_TYPE                    [i]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h

    r117 r118  
    121121  private   : Tcontrol_t                    * internal_PUSH_GPR_VAL     ;//[nb_reg_free]
    122122  private   : uint32_t                      * internal_PUSH_GPR_NUM_BANK;//[nb_reg_free]
     123  private   : uint32_t                      * internal_PUSH_GPR_NUM_REG ;//[nb_reg_free]
    123124  private   : Tcontrol_t                    * internal_PUSH_SPR_VAL     ;//[nb_reg_free]
    124125  private   : uint32_t                      * internal_PUSH_SPR_NUM_BANK;//[nb_reg_free]
     126  private   : uint32_t                      * internal_PUSH_SPR_NUM_REG ;//[nb_reg_free]
    125127#endif
    126128
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp

    r117 r118  
    134134     ALLOC1(internal_PUSH_GPR_VAL     ,Tcontrol_t,_param->_nb_reg_free);
    135135     ALLOC1(internal_PUSH_GPR_NUM_BANK,uint32_t  ,_param->_nb_reg_free);
     136     ALLOC1(internal_PUSH_GPR_NUM_REG ,uint32_t  ,_param->_nb_reg_free);
    136137     ALLOC1(internal_PUSH_SPR_VAL     ,Tcontrol_t,_param->_nb_reg_free);
    137138     ALLOC1(internal_PUSH_SPR_NUM_BANK,uint32_t  ,_param->_nb_reg_free);
     139     ALLOC1(internal_PUSH_SPR_NUM_REG ,uint32_t  ,_param->_nb_reg_free);
    138140      }
    139141
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp

    r117 r118  
    7777        DELETE1(internal_PUSH_GPR_VAL     ,_param->_nb_reg_free);
    7878        DELETE1(internal_PUSH_GPR_NUM_BANK,_param->_nb_reg_free);
     79        DELETE1(internal_PUSH_GPR_NUM_REG ,_param->_nb_reg_free);
    7980        DELETE1(internal_PUSH_SPR_VAL     ,_param->_nb_reg_free);
    8081        DELETE1(internal_PUSH_SPR_NUM_BANK,_param->_nb_reg_free);
     82        DELETE1(internal_PUSH_SPR_NUM_REG ,_param->_nb_reg_free);
    8183      }
    8284
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp

    r112 r118  
    88
    99#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h"
     10#include <set>
    1011
    1112namespace morpheo                    {
     
    1819namespace stat_list_unit {
    1920
     21#define STAT_LIST_SCAN_ALL
    2022
    2123#undef  FUNCTION
     
    2628    log_function(Stat_List_unit,FUNCTION,_name.c_str());
    2729
    28     uint32_t gpr_ptr = reg_GPR_PTR_FREE;
    29     uint32_t spr_ptr = reg_SPR_PTR_FREE;
     30    uint32_t  gpr_ptr = reg_GPR_PTR_FREE;
     31    uint32_t  spr_ptr = reg_SPR_PTR_FREE;
     32#ifdef STAT_LIST_SCAN_ALL
     33    std::set<Tgeneral_address_t> list_gpr_free;
     34    std::set<Tspecial_address_t> list_spr_free;
     35#endif
    3036
    3137    for (uint32_t i=0; i<_param->_nb_reg_free; i++)
    3238      {
     39        log_printf(TRACE,Stat_List_unit,FUNCTION,"  * PUSH [%d]",i);
     40         
    3341        uint32_t offset  = i*_param->_nb_bank_by_port_free;
    3442
    3543        // PUSH_GPR
    3644        {
    37           uint32_t bank_gpr;
    38          
    39           for (bank_gpr=offset; bank_gpr<offset+_param->_nb_bank_by_port_free; bank_gpr++)
    40             if (gpr_stat_list[bank_gpr][gpr_ptr].can_free())
    41               break;
    42          
    43           bool val = (bank_gpr != offset+_param->_nb_bank_by_port_free);
    44          
     45          bool     val      = false;
     46          uint32_t bank_gpr = offset;
     47
     48#ifdef STAT_LIST_SCAN_ALL
     49          for (uint32_t _gpr_ptr=0;  _gpr_ptr<_param->_nb_general_register_by_bank; ++_gpr_ptr)
     50            {
     51              gpr_ptr = (gpr_ptr+1)%_param->_nb_general_register_by_bank;
     52#endif   
     53              for (bank_gpr = offset; bank_gpr<offset+_param->_nb_bank_by_port_free; bank_gpr++)
     54                if (gpr_stat_list[bank_gpr][gpr_ptr].can_free())
     55                  {
     56#ifdef STAT_LIST_SCAN_ALL
     57                    Tgeneral_address_t num_reg = ((bank_gpr<<_param->_shift_gpr) | gpr_ptr);
     58                    if (list_gpr_free.find(num_reg) == list_gpr_free.end())
     59                      {
     60                        list_gpr_free.insert(num_reg);
     61#endif
     62                        val = true;
     63                        break;
     64#ifdef STAT_LIST_SCAN_ALL
     65                      }
     66#endif
     67                  }
     68#ifdef STAT_LIST_SCAN_ALL
     69              if (val)
     70                break;
     71            }
     72#endif   
     73
     74          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * val      : %d",val);
     75          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * bank_gpr : %d",bank_gpr);
     76          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * gpr_ptr  : %d",gpr_ptr);
     77          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * num_reg  : %d",((bank_gpr<<_param->_shift_gpr) | gpr_ptr));
     78
    4579          internal_PUSH_GPR_VAL      [i] = val;
    4680          internal_PUSH_GPR_NUM_BANK [i] = bank_gpr;
     81          internal_PUSH_GPR_NUM_REG  [i] = gpr_ptr ;
    4782
    4883          PORT_WRITE(out_PUSH_GPR_VAL [i], val);
     
    5388        // PUSH_SPR
    5489        {
    55           uint32_t bank_spr;
    56          
    57           for (bank_spr=offset; bank_spr<offset+_param->_nb_bank_by_port_free; bank_spr++)
    58             if (spr_stat_list[bank_spr][spr_ptr].can_free())
    59               break;
     90          bool     val      = false;
     91          uint32_t bank_spr = offset;
    6092
    61           bool val = (bank_spr != (offset+_param->_nb_bank_by_port_free));
    62          
     93#ifdef STAT_LIST_SCAN_ALL
     94          for (uint32_t _spr_ptr=0;  _spr_ptr<_param->_nb_special_register_by_bank; ++_spr_ptr)
     95            {
     96              spr_ptr = (spr_ptr+1)%_param->_nb_special_register_by_bank;
     97#endif   
     98              for (bank_spr = offset; bank_spr<offset+_param->_nb_bank_by_port_free; bank_spr++)
     99                if (spr_stat_list[bank_spr][spr_ptr].can_free())
     100                  {
     101#ifdef STAT_LIST_SCAN_ALL
     102                    Tspecial_address_t num_reg = ((bank_spr<<_param->_shift_spr) | spr_ptr);
     103                    if (list_spr_free.find(num_reg) == list_spr_free.end())
     104                      {
     105                        list_spr_free.insert(num_reg);
     106#endif
     107                        val = true;
     108                        break;
     109#ifdef STAT_LIST_SCAN_ALL
     110                      }
     111#endif
     112                  }
     113#ifdef STAT_LIST_SCAN_ALL
     114              if (val)
     115                break;
     116            }
     117#endif   
     118
     119          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * val      : %d",val);
     120          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * bank_spr : %d",bank_spr);
     121          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * spr_ptr  : %d",spr_ptr);
     122          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * num_reg  : %d",((bank_spr<<_param->_shift_spr) | spr_ptr));
     123
    63124          internal_PUSH_SPR_VAL      [i] = val;
    64125          internal_PUSH_SPR_NUM_BANK [i] = bank_spr;
     126          internal_PUSH_SPR_NUM_REG  [i] = spr_ptr ;
    65127
    66128          PORT_WRITE(out_PUSH_SPR_VAL [i], val);
     
    68130            PORT_WRITE(out_PUSH_SPR_NUM_REG[i], ((bank_spr<<_param->_shift_spr) | spr_ptr));
    69131        }
     132
     133
    70134      }
    71135   
  • 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

    r117 r118  
    233233            // =====================================================
    234234            if (internal_PUSH_GPR_VAL [i] and PORT_READ(in_PUSH_GPR_ACK [i]))
    235               gpr_stat_list[internal_PUSH_GPR_NUM_BANK [i]][reg_GPR_PTR_FREE].free();
     235              gpr_stat_list[internal_PUSH_GPR_NUM_BANK [i]][internal_PUSH_GPR_NUM_REG [i]].free();
    236236           
    237237            // =====================================================
     
    239239            // =====================================================
    240240            if (internal_PUSH_SPR_VAL [i] and PORT_READ(in_PUSH_SPR_ACK [i]))
    241               spr_stat_list[internal_PUSH_SPR_NUM_BANK [i]][reg_SPR_PTR_FREE].free();
     241              spr_stat_list[internal_PUSH_SPR_NUM_BANK [i]][internal_PUSH_SPR_NUM_REG [i]].free();
    242242          }
    243243
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_transition.cpp

    r100 r118  
    133133                }
    134134            }
     135
     136#if (DEBUG >= DEBUG_TRACE) and (DEBUG_Special_Register_unit == true)
     137        {
     138          log_printf(TRACE,Special_Register_unit,FUNCTION,"  * Dump SPR");
     139
     140          for (uint32_t i=0; i<_param->_nb_front_end; i++)
     141            for (uint32_t j=0; j<_param->_nb_context[i]; j++)
     142              {
     143                log_printf(TRACE,Special_Register_unit,FUNCTION,"    * SR        [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_SR          ]->read());
     144                log_printf(TRACE,Special_Register_unit,FUNCTION,"    * CID       [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_CID         ]->read());
     145                log_printf(TRACE,Special_Register_unit,FUNCTION,"    * TID       [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_TID         ]->read());
     146                log_printf(TRACE,Special_Register_unit,FUNCTION,"    * TSR       [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_TSR         ]->read());
     147//                 log_printf(TRACE,Special_Register_unit,FUNCTION,"    * MACLO     [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_MAC               ][SPR_MACLO      ]->read());
     148//                 log_printf(TRACE,Special_Register_unit,FUNCTION,"    * MACHI     [%d][%d] : %.8x",i,j,_spr [i][j][GROUP_MAC               ][SPR_MACHI      ]->read());
     149              }
     150        }
     151#endif
    135152      }
    136153
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h

    r112 r118  
    5151#  define                 DEBUG_Meta_Predictor_Glue               true
    5252#  define                 DEBUG_Two_Level_Branch_Predictor        true
    53 #  define                   DEBUG_Two_Level_Branch_Predictor_Glue true
    54 #  define                   DEBUG_Branch_History_Table            true
    55 #  define                   DEBUG_Pattern_History_Table           true
    5653#  define             DEBUG_Prediction_unit_Glue                  true
    5754#  define             DEBUG_Return_Address_Stack                  true
     
    9895#  define DEBUG_Allocation                                        true
    9996#  define DEBUG_Interface                                         true
     97
     98//----------------------------------------------------------------------
     99
     100// Boolean
     101#  define NAME_true                                       "true"
     102#  define NAME_false                                      "false"
     103                                                                                                       
     104// Others                                                                                             
     105#  define NAME_Allocation                                 "Allocation"
     106#  define NAME_Interface                                  "Interface"
     107
     108// Component                                               
     109#  define NAME_Morpheo                                    "Morpheo"
     110#  define NAME_Behavioural                                "Behavioural"
     111#  define NAME_Configuration                              "Configuration"
     112#  define NAME_Generic                                    "Generic"
     113#  define NAME_Comparator                                 "Comparator"
     114#  define NAME_Counter                                    "Counter"
     115#  define NAME_Divider                                    "Divider"
     116#  define NAME_Multiplier                                 "Multiplier"
     117#  define NAME_Priority                                   "Priority"
     118#  define NAME_Queue                                      "Queue"
     119#  define NAME_Queue_Control                              "Queue_Control"
     120#  define NAME_RegisterFile                               "RegisterFile"
     121#  define NAME_RegisterFile_Monolithic                    "RegisterFile_Monolithic"
     122#  define NAME_RegisterFile_Multi_Banked                  "RegisterFile_Multi_Banked"
     123#  define NAME_Select                                     "Select"
     124#  define NAME_Select_Priority_Fixed                      "Select_Priority_Fixed"
     125#  define NAME_Shifter                                    "Shifter"
     126#  define NAME_Sort                                       "Sort"
     127#  define NAME_Victim                                     "Victim"
     128#  define NAME_Victim_Pseudo_LRU                          "Victim_Pseudo_LRU"
     129#  define NAME_Core                                       "Core"
     130#  define NAME_Core_Glue                                  "Core_Glue"
     131#  define NAME_Dcache_Access                              "Dcache_Access"
     132#  define NAME_Icache_Access                              "Icache_Access"
     133#  define NAME_Multi_Front_end                            "Multi_Front_end"
     134#  define NAME_Front_end                                  "Front_end"
     135#  define NAME_Context_State                              "Context_State"
     136#  define NAME_Decod_unit                                 "Decod_unit"
     137#  define NAME_Decod                                      "Decod"
     138#  define NAME_Decod_queue                                "Decod_queue"
     139#  define NAME_Front_end_Glue                             "Front_end_Glue"
     140#  define NAME_Ifetch_unit                                "Ifetch_unit"
     141#  define NAME_Address_management                         "Address_management"
     142#  define NAME_Ifetch_queue                               "Ifetch_queue"
     143#  define NAME_Ifetch_unit_Glue                           "Ifetch_unit_Glue"
     144#  define NAME_Prediction_unit                            "Prediction_unit"
     145#  define NAME_Branch_Target_Buffer                       "Branch_Target_Buffer"
     146#  define NAME_Branch_Target_Buffer_Glue                  "Branch_Target_Buffer_Glue"
     147#  define NAME_Branch_Target_Buffer_Register              "Branch_Target_Buffer_Register"
     148#  define NAME_Direction                                  "Direction"
     149#  define NAME_Direction_Glue                             "Direction_Glue"
     150#  define NAME_Meta_Predictor                             "Meta_Predictor"
     151#  define NAME_Meta_Predictor_Glue                        "Meta_Predictor_Glue"
     152#  define NAME_Two_Level_Branch_Predictor                 "Two_Level_Branch_Predictor"
     153#  define NAME_Prediction_unit_Glue                       "Prediction_unit_Glue"
     154#  define NAME_Return_Address_Stack                       "Return_Address_Stack"
     155#  define NAME_Update_Prediction_Table                    "Update_Prediction_Table"
     156#  define NAME_Multi_OOO_Engine                           "Multi_OOO_Engine"
     157#  define NAME_OOO_Engine                                 "OOO_Engine"
     158#  define NAME_Commit_unit                                "Commit_unit"
     159#  define NAME_Issue_queue                                "Issue_queue"
     160#  define NAME_OOO_Engine_Glue                            "OOO_Engine_Glue"
     161#  define NAME_Reexecute_unit                             "Reexecute_unit"
     162#  define NAME_Rename_unit                                "Rename_unit"
     163#  define NAME_Load_Store_pointer_unit                    "Load_Store_pointer_unit"
     164#  define NAME_Register_translation_unit                  "Register_translation_unit"
     165#  define NAME_Dependency_checking_unit                   "Dependency_checking_unit"
     166#  define NAME_Free_List_unit                             "Free_List_unit"
     167#  define NAME_Register_Address_Translation_unit          "Register_Address_Translation_unit"
     168#  define NAME_Register_translation_unit_Glue             "Register_translation_unit_Glue"
     169#  define NAME_Stat_List_unit                             "Stat_List_unit"
     170#  define NAME_Rename_select                              "Rename_select"
     171#  define NAME_Rename_unit_Glue                           "Rename_unit_Glue"
     172#  define NAME_Special_Register_unit                      "Special_Register_unit"
     173#  define NAME_Multi_Execute_loop                         "Multi_Execute_loop"
     174#  define NAME_Execute_loop                               "Execute_loop"
     175#  define NAME_Execute_loop_Glue                          "Execute_loop_Glue"
     176#  define NAME_Multi_Execute_unit                         "Multi_Execute_unit"
     177#  define NAME_Execute_unit                               "Execute_unit"
     178#  define NAME_Functionnal_unit                           "Functionnal_unit"
     179#  define NAME_Load_store_unit                            "Load_store_unit"
     180#  define NAME_Multi_Read_unit                            "Multi_Read_unit"
     181#  define NAME_Read_unit                                  "Read_unit"
     182#  define NAME_Read_queue                                 "Read_queue"
     183#  define NAME_Reservation_station                        "Reservation_station"
     184#  define NAME_Multi_Write_unit                           "Multi_Write_unit"
     185#  define NAME_Write_unit                                 "Write_unit"
     186#  define NAME_Execute_queue                              "Execute_queue"
     187#  define NAME_Write_queue                                "Write_queue"
     188#  define NAME_Network                                    "Network"
     189#  define NAME_Execution_unit_to_Write_unit               "Execution_unit_to_Write_unit"
     190#  define NAME_Read_unit_to_Execution_unit                "Read_unit_to_Execution_unit"
     191#  define NAME_Register_unit                              "Register_unit"
     192#  define NAME_Register_unit_Glue                         "Register_unit_Glue"
     193
    100194#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h

    r113 r118  
    99 */
    1010
    11 #include "Common/include/Debug.h"
     11#include "Common/include/ToString.h"
     12#include "Common/include/FromString.h"
    1213#include "Common/include/ErrorMorpheo.h"
    1314#include <map>
     
    2425  typedef struct
    2526  {
    26     model_type_t      type ;
    27     debug_verbosity_t debug;
     27    model_type_t type ;
     28    bool        debug;
    2829  } model_t;
    2930   
    3031  class Model
    3132  {
    32   private : static const model_type_t      default_type  = MODEL_SYSTEMC;
    33   private : static const debug_verbosity_t default_debug = DEBUG_NONE;
     33  private : static const model_type_t default_type  = MODEL_SYSTEMC;
     34  private : static const bool         default_debug = false;
    3435
    3536  private : std::map<std::string,model_t> models;
    3637
    37   public  :                    Model (void);
    38   public  :                   ~Model (void);
    39   public  : void              set_model (std::string component, model_type_t type, debug_verbosity_t debug);
    40   public  : model_type_t      get_type  (std::string component);
    41   public  : debug_verbosity_t get_debug (std::string component);
    42   public  : void              print     (void);
     38  public  :               Model (void);
     39  public  :              ~Model (void);
     40  public  : void         set_model (std::string component, model_type_t type, bool debug);
     41  public  : model_type_t get_type  (std::string component);
     42  public  : bool        get_debug (std::string component);
     43  public  : void         print     (void);
    4344  };
    4445 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h

    r111 r118  
    2020  typedef uint8_t            Texception_t;
    2121  typedef uint8_t            Tcontext_t;
    22   typedef uint8_t            Tpacket_t;
     22  typedef uint16_t           Tpacket_t;
    2323  typedef uint8_t            Toperation_t;
    2424  typedef uint8_t            Ttype_t;
    25   typedef uint8_t            Tcounter_t; // universal counter
    26   typedef uint8_t            Tptr_t;     // universal pointer
     25  typedef uint32_t           Tcounter_t; // universal counter
     26  typedef uint32_t           Tptr_t;     // universal pointer
    2727  typedef uint32_t           Tspr_t;
    2828  typedef uint16_t           Tspr_address_t;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h

    r117 r118  
    1010#define MORPHEO_MAJOR_VERSION "0"
    1111#define MORPHEO_MINOR_VERSION "2"
    12 #define MORPHEO_REVISION      "117"
     12#define MORPHEO_REVISION      "118"
    1313#define MORPHEO_CODENAME      "Castor"
    1414
    15 #define MORPHEO_DATE_DAY      "16
     15#define MORPHEO_DATE_DAY      "20
    1616#define MORPHEO_DATE_MONTH    "05"
    1717#define MORPHEO_DATE_YEAR     "2009"
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp

    r112 r118  
    77
    88#include "Behavioural/include/Model.h"
     9#include "Common/include/Debug.h"
    910
    1011namespace morpheo              {
     
    1617  {
    1718    log_begin(Behavioural,FUNCTION);
     19
     20    set_model(NAME_true ,MODEL_SYSTEMC,true );
     21    set_model(NAME_false,MODEL_SYSTEMC,false);
     22
    1823    log_end(Behavioural,FUNCTION);
    1924  }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_debug.cpp

    r112 r118  
    77
    88#include "Behavioural/include/Model.h"
     9#include "Common/include/Debug.h"
    910
    1011namespace morpheo              {
     
    1314#undef  FUNCTION
    1415#define FUNCTION "Model::get_debug"
    15   debug_verbosity_t Model::get_debug (std::string component)
     16  bool Model::get_debug (std::string component)
    1617  {
    1718    log_begin(Behavioural,FUNCTION);
    1819
    19     debug_verbosity_t _return;
     20    bool _return;
    2021
    2122    std::map<std::string,model_t>::iterator it = models.find(component);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_type.cpp

    r112 r118  
    77
    88#include "Behavioural/include/Model.h"
     9#include "Common/include/Debug.h"
    910
    1011namespace morpheo              {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_print.cpp

    r113 r118  
    77
    88#include "Behavioural/include/Model.h"
     9#include "Common/include/Debug.h"
    910
    1011namespace morpheo              {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp

    r113 r118  
    77
    88#include "Behavioural/include/Model.h"
     9#include "Common/include/Debug.h"
    910
    1011namespace morpheo              {
     
    1314#undef  FUNCTION
    1415#define FUNCTION "Model::set_model"
    15   void Model::set_model (std::string component, model_type_t type, debug_verbosity_t debug)
     16  void Model::set_model (std::string component, model_type_t type, bool debug)
    1617  {
    1718    log_begin(Behavioural,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Common/include/Debug.h

    r113 r118  
    2424 */
    2525
     26#include "Common/include/Debug_type.h"
    2627#include "Common/include/Systemc.h"
    2728#include "Common/include/Message.h"
     
    2930#include "Common/include/ChangeCase.h"
    3031#include "Behavioural/include/Debug_component.h"
     32#include "Behavioural/include/Model.h"
     33#include "Behavioural/include/Simulation.h"
    3134#include <systemc.h>
    3235#include <stdio.h>
     
    3942namespace morpheo {
    4043
    41 typedef enum
    42   {
    43     DEBUG_NONE ,
    44     DEBUG_INFO ,
    45     DEBUG_TRACE,
    46     DEBUG_FUNC ,
    47     DEBUG_ALL
    48   } debug_verbosity_t;
     44// typedef enum
     45//   {
     46//     DEBUG_NONE ,
     47//     DEBUG_INFO ,
     48//     DEBUG_TRACE,
     49//     DEBUG_FUNC ,
     50//     DEBUG_ALL
     51//   } debug_verbosity_t;
    4952
    5053  extern debug_verbosity_t debug;
     
    8184        if ((debug == DEBUG_ALL ) or                                    \
    8285            (DEBUG_ ## level == DEBUG_NONE) or                          \
    83             (( DEBUG_ ## level     <= debug) and                        \
    84              ( DEBUG_ ## component == true )) )                        \
     86            (( DEBUG_ ## level <= debug) and                            \
     87             ( morpheo::behavioural::_model.get_debug(NAME_ ## component))) ) \
    8588          {                                                             \
    8689            if (DEBUG_ ## level <= DEBUG_INFO)                          \
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_0.cfg

    r117 r118  
    11<?xml version="1.0" encoding="ISO-8859-1" ?>
    22
    3 <core name="Instance_min">
     3<core name="Instance_x1_w1_0">
    44
    55  <thread id="0">             
     
    4646    <parameter name="size_execute_queue"                    value="1" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_1.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="2" />
    4040    <parameter name="size_reservation_station"              value="2" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="2" />
    4242  </read_bloc>                                             
    4343                                                           
     
    4646    <parameter name="size_execute_queue"                    value="2" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    8384    <parameter name="btb_size_counter"                      value="2" />
    8485    <parameter name="btb_victim_scheme"                     value="1" />
    85     <parameter name="dir_predictor_scheme"                  value="1" />
     86    <parameter name="dir_predictor_scheme"                  value="2" />
    8687
    8788    <predictor id="0">                                     
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_2.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
     
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    8384    <parameter name="btb_size_counter"                      value="2" />
    8485    <parameter name="btb_victim_scheme"                     value="3" />
    85     <parameter name="dir_predictor_scheme"                  value="1" />
     86    <parameter name="dir_predictor_scheme"                  value="2" />
    8687
    8788    <predictor id="0">                                     
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_3.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
     
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    8384    <parameter name="btb_size_counter"                      value="2" />
    8485    <parameter name="btb_victim_scheme"                     value="3" />
    85     <parameter name="dir_predictor_scheme"                  value="1" />
     86    <parameter name="dir_predictor_scheme"                  value="2" />
    8687
    8788    <predictor id="0">                                     
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_4.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
     
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    9798    <parameter name="btb_size_counter"                      value="2" />
    9899    <parameter name="btb_victim_scheme"                     value="3" />
    99     <parameter name="dir_predictor_scheme"                  value="1" />
     100    <parameter name="dir_predictor_scheme"                  value="2" />
    100101  </front_end>
    101102
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_1.cfg

    r117 r118  
    1717  <decod_bloc id="0">                                       
    1818    <parameter name="size_decod_queue"                      value="4" />
    19     <parameter name="decod_queue_scheme"                    value="0" />
     19    <parameter name="decod_queue_scheme"                    value="1" />
    2020    <parameter name="nb_inst_decod"                         value="2" />
    2121    <parameter name="nb_context_select"                     value="1" />
     
    3636  </rename_bloc>                                           
    3737                                                           
    38   <read_bloc id="0,1,2">                                       
     38  <read_bloc id="0,1">                                       
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
    44   <write_bloc id="0,1,2">                                       
     44  <write_bloc id="0,1">                                       
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    6061
    6162  <functionnal_unit id="0">
    62     <parameter name="nb_inst_functionnal_unit" value="1" />
    63 
    64     <timing type="0"  latence="1" delay="1" />
    65     <timing type="1"  latence="1" delay="1" />
    66     <timing type="2"  latence="1" delay="1" />
    67     <timing type="3"  latence="1" delay="1" />
    68     <timing type="4"  latence="1" delay="1" />
    69     <timing type="6"  latence="1" delay="1" />
    70     <timing type="7"  latence="1" delay="1" />
    71 
    72     <timing type="10" latence="1" delay="1" />
    73   </functionnal_unit>
    74 
    75   <functionnal_unit id="1">
    7663    <parameter name="nb_inst_functionnal_unit" value="1" />
    7764
     
    123110
    124111  <execute_loop id="0">
    125     <parameter name="nb_read_unit"                          value="3" />
    126     <parameter name="nb_write_unit"                         value="3" />
     112    <parameter name="nb_read_unit"                          value="2" />
     113    <parameter name="nb_write_unit"                         value="2" />
    127114    <parameter name="nb_gpr_bank"                           value="2" />
    128115    <parameter name="nb_gpr_port_read_by_bank"              value="2" />
     
    135122
    136123    <execute_unit id="0">
    137       <link name="link_execute_unit_with_functionnal_unit"  src="0"/>
     124      <link name="link_execute_unit_with_load_store_unit"   src="0"/>
    138125    </execute_unit>
    139126    <execute_unit id="1">
    140       <link name="link_execute_unit_with_functionnal_unit"  src="1"/>
    141     </execute_unit>
    142     <execute_unit id="2">
    143       <link name="link_execute_unit_with_load_store_unit"   src="0"/>
     127      <link name="link_execute_unit_with_functionnal_unit"  src="0"/>
    144128    </execute_unit>
    145129
     
    165149  <link name="link_read_unit_with_read_bloc"           src="0"     dest="0.0" />
    166150  <link name="link_read_unit_with_read_bloc"           src="1"     dest="0.1" />
    167   <link name="link_read_unit_with_read_bloc"           src="2"     dest="0.2" />
    168151  <link name="link_write_unit_with_write_bloc"         src="0"     dest="0.0" />
    169152  <link name="link_write_unit_with_write_bloc"         src="1"     dest="0.1" />
    170   <link name="link_write_unit_with_write_bloc"         src="2"     dest="0.2" />
    171153
    172154  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
     
    178160
    179161  <link name="table_dispatch"                          src="0.0.0" dest="1"   />
    180   <link name="table_dispatch"                          src="0.0.1" dest="1"   />
    181   <link name="table_dispatch"                          src="0.0.2" dest="1"   />
    182   <link name="table_dispatch"                          src="0.1.0" dest="1"   />
     162  <link name="table_dispatch"                          src="0.0.1" dest="0"   />
     163  <link name="table_dispatch"                          src="0.1.0" dest="0"   />
    183164  <link name="table_dispatch"                          src="0.1.1" dest="1"   />
    184   <link name="table_dispatch"                          src="0.1.2" dest="1"   />
    185165
    186166  <link name="link_read_bloc_and_load_store_unit"      src="0.0"   dest="1"   />
    187167  <link name="link_read_bloc_and_load_store_unit"      src="1.0"   dest="0"   />
    188   <link name="link_read_bloc_and_load_store_unit"      src="2.0"   dest="0"   />
    189168
    190169  <link name="link_read_bloc_and_functionnal_unit"     src="0.0"   dest="0"   />
    191   <link name="link_read_bloc_and_functionnal_unit"     src="0.1"   dest="0"   />
    192170  <link name="link_read_bloc_and_functionnal_unit"     src="1.0"   dest="1"   />
    193   <link name="link_read_bloc_and_functionnal_unit"     src="1.1"   dest="0"   />
    194   <link name="link_read_bloc_and_functionnal_unit"     src="2.0"   dest="0"   />
    195   <link name="link_read_bloc_and_functionnal_unit"     src="2.1"   dest="1"   />
    196 
     171 
    197172  <link name="link_write_bloc_and_load_store_unit"     src="0.0"   dest="1"   />
    198173  <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
    199   <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="1"   />
    200174  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="1"   />
    201   <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="1"   />
    202175  <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="1"   />
    203   <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="1"   />
    204   <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    205   <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
    206176
    207177  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
    208   <link name="link_thread_and_functionnal_unit"        src="0.1"   dest="1"   />
    209178
    210179</core>
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_2.cfg

    r117 r118  
    1717  <decod_bloc id="0">                                       
    1818    <parameter name="size_decod_queue"                      value="8" />
    19     <parameter name="decod_queue_scheme"                    value="0" />
     19    <parameter name="decod_queue_scheme"                    value="1" />
    2020    <parameter name="nb_inst_decod"                         value="2" />
    2121    <parameter name="nb_context_select"                     value="1" />
     
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
     
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_3.cfg

    r117 r118  
    1717  <decod_bloc id="0">                                       
    1818    <parameter name="size_decod_queue"                      value="8" />
    19     <parameter name="decod_queue_scheme"                    value="0" />
     19    <parameter name="decod_queue_scheme"                    value="1" />
    2020    <parameter name="nb_inst_decod"                         value="2" />
    2121    <parameter name="nb_context_select"                     value="1" />
     
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
    44   <write_bloc id="0,1,2,3">
     44  <write_bloc id="0,1,2">
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    124125  <execute_loop id="0">
    125126    <parameter name="nb_read_unit"                          value="3" />
    126     <parameter name="nb_write_unit"                         value="4" />
     127    <parameter name="nb_write_unit"                         value="3" />
    127128    <parameter name="nb_gpr_bank"                           value="2" />
    128129    <parameter name="nb_gpr_port_read_by_bank"              value="2" />
     
    170171  <link name="link_write_unit_with_write_bloc"         src="1"     dest="0.1" />
    171172  <link name="link_write_unit_with_write_bloc"         src="2"     dest="0.2" />
    172   <link name="link_write_unit_with_write_bloc"         src="3"     dest="0.3" />
    173173
    174174  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
     
    200200  <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
    201201  <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="1"   />
    202   <link name="link_write_bloc_and_load_store_unit"     src="3.0"   dest="1"   />
     202
    203203  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="1"   />
    204204  <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="1"   />
     
    207207  <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    208208  <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
    209   <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="1"   />
    210   <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="1"   />
    211209
    212210  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_4.cfg

    r117 r118  
    1717  <decod_bloc id="0">                                       
    1818    <parameter name="size_decod_queue"                      value="8" />
    19     <parameter name="decod_queue_scheme"                    value="0" />
     19    <parameter name="decod_queue_scheme"                    value="1" />
    2020    <parameter name="nb_inst_decod"                         value="2" />
    2121    <parameter name="nb_context_select"                     value="1" />
     
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343                                                           
    44   <write_bloc id="0,1,2,3,4,5">
     44  <write_bloc id="0,1,2,3">
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950                                                           
     
    124125  <execute_loop id="0">
    125126    <parameter name="nb_read_unit"                          value="4" />
    126     <parameter name="nb_write_unit"                         value="6" />
     127    <parameter name="nb_write_unit"                         value="4" />
    127128    <parameter name="nb_gpr_bank"                           value="2" />
    128129    <parameter name="nb_gpr_port_read_by_bank"              value="2" />
     
    175176  <link name="link_write_unit_with_write_bloc"         src="2"     dest="0.2" />
    176177  <link name="link_write_unit_with_write_bloc"         src="3"     dest="0.3" />
    177   <link name="link_write_unit_with_write_bloc"         src="4"     dest="0.4" />
    178   <link name="link_write_unit_with_write_bloc"         src="5"     dest="0.5" />
    179178
    180179  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
     
    213212
    214213  <link name="link_write_bloc_and_load_store_unit"     src="0.0"   dest="1"   />
    215   <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
     214  <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="0"   />
    216215  <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="0"   />
    217216  <link name="link_write_bloc_and_load_store_unit"     src="3.0"   dest="0"   />
    218   <link name="link_write_bloc_and_load_store_unit"     src="4.0"   dest="0"   />
    219   <link name="link_write_bloc_and_load_store_unit"     src="5.0"   dest="0"   />
    220217
    221218  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="0"   />
    222219  <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="0"   />
    223220  <link name="link_write_bloc_and_functionnal_unit"    src="0.2"   dest="0"   />
    224   <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="0"   />
    225   <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="0"   />
    226   <link name="link_write_bloc_and_functionnal_unit"    src="1.2"   dest="0"   />
     221  <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="1"   />
     222  <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="1"   />
     223  <link name="link_write_bloc_and_functionnal_unit"    src="1.2"   dest="1"   />
    227224  <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    228225  <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
     
    231228  <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="1"   />
    232229  <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="1"   />
    233   <link name="link_write_bloc_and_functionnal_unit"    src="4.0"   dest="1"   />
    234   <link name="link_write_bloc_and_functionnal_unit"    src="4.1"   dest="1"   />
    235   <link name="link_write_bloc_and_functionnal_unit"    src="4.2"   dest="1"   />
    236   <link name="link_write_bloc_and_functionnal_unit"    src="5.0"   dest="1"   />
    237   <link name="link_write_bloc_and_functionnal_unit"    src="5.1"   dest="1"   />
    238   <link name="link_write_bloc_and_functionnal_unit"    src="5.2"   dest="1"   />
    239230
    240231  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w4_1.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343
    44   <write_bloc id="0,1,2,3,4,5,6">                                       
     44  <write_bloc id="0,1,2,3">                                       
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950
     
    8889    <parameter name="btb_size_counter"                      value="2" />
    8990    <parameter name="btb_victim_scheme"                     value="3" />
    90     <parameter name="dir_predictor_scheme"                  value="4" />
     91    <parameter name="dir_predictor_scheme"                  value="2" />
    9192                                                           
    9293    <predictor id="0">                                     
     
    122123    <parameter name="nb_inst_reexecute"                     value="1" />
    123124    <parameter name="nb_inst_commit"                        value="4" />
    124     <parameter name="nb_inst_branch_complete"               value="1" />
     125    <parameter name="nb_inst_branch_complete"               value="2" />
    125126    <parameter name="nb_rename_unit_select"                 value="1" />
    126127    <parameter name="nb_execute_loop_select"                value="1" />
     
    129130    <parameter name="commit_priority"                       value="1" />
    130131    <parameter name="commit_load_balancing"                 value="1" />
    131     <parameter name="size_issue_queue"                      value="8" />
     132    <parameter name="size_issue_queue"                      value="16" />
    132133    <parameter name="nb_issue_queue_bank"                   value="4" />
    133134    <parameter name="issue_queue_scheme"                    value="0" />
     
    141142  <execute_loop id="0">
    142143    <parameter name="nb_read_unit"                          value="4" />
    143     <parameter name="nb_write_unit"                         value="7" />
     144    <parameter name="nb_write_unit"                         value="4" />
    144145    <parameter name="nb_execute_unit"                       value="4" />
    145146    <parameter name="nb_gpr_bank"                           value="1" />
     
    177178  <link name="link_write_unit_with_write_bloc"         src="2"     dest="0.2" />
    178179  <link name="link_write_unit_with_write_bloc"         src="3"     dest="0.3" />
    179   <link name="link_write_unit_with_write_bloc"         src="4"     dest="0.4" />
    180   <link name="link_write_unit_with_write_bloc"         src="5"     dest="0.5" />
    181   <link name="link_write_unit_with_write_bloc"         src="6"     dest="0.6" />
    182180  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
    183181  <link name="link_rename_bloc_with_front_end"         src="0"     dest="0"   />
     
    230228
    231229  <link name="link_write_bloc_and_load_store_unit"     src="0.0"   dest="1"   />
    232   <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
     230  <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="0"   />
    233231  <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="0"   />
    234232  <link name="link_write_bloc_and_load_store_unit"     src="3.0"   dest="0"   />
    235   <link name="link_write_bloc_and_load_store_unit"     src="4.0"   dest="0"   />
    236   <link name="link_write_bloc_and_load_store_unit"     src="5.0"   dest="0"   />
    237   <link name="link_write_bloc_and_load_store_unit"     src="6.0"   dest="0"   />
     233
    238234  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="0"   />
    239   <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="0"   />
     235  <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="1"   />
    240236  <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    241   <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="1"   />
    242   <link name="link_write_bloc_and_functionnal_unit"    src="4.0"   dest="1"   />
    243   <link name="link_write_bloc_and_functionnal_unit"    src="5.0"   dest="0"   />
    244   <link name="link_write_bloc_and_functionnal_unit"    src="6.0"   dest="0"   />
     237  <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="0"   />
     238
    245239  <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="0"   />
    246   <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="0"   />
     240  <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="1"   />
    247241  <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
    248   <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="1"   />
    249   <link name="link_write_bloc_and_functionnal_unit"    src="4.1"   dest="1"   />
    250   <link name="link_write_bloc_and_functionnal_unit"    src="5.1"   dest="0"   />
    251   <link name="link_write_bloc_and_functionnal_unit"    src="6.1"   dest="0"   />
     242  <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="0"   />
     243
    252244  <link name="link_write_bloc_and_functionnal_unit"    src="0.2"   dest="0"   />
    253245  <link name="link_write_bloc_and_functionnal_unit"    src="1.2"   dest="0"   />
    254246  <link name="link_write_bloc_and_functionnal_unit"    src="2.2"   dest="0"   />
    255   <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="0"   />
    256   <link name="link_write_bloc_and_functionnal_unit"    src="4.2"   dest="0"   />
    257   <link name="link_write_bloc_and_functionnal_unit"    src="5.2"   dest="1"   />
    258   <link name="link_write_bloc_and_functionnal_unit"    src="6.2"   dest="1"   />
     247  <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="1"   />
    259248
    260249  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w4_2.cfg

    r117 r118  
    3939    <parameter name="size_read_queue"                       value="4" />
    4040    <parameter name="size_reservation_station"              value="4" />
    41     <parameter name="nb_inst_retire_reservation_station"    value="1" />
     41    <parameter name="nb_inst_retire_reservation_station"    value="4" />
    4242  </read_bloc>                                             
    4343
    44   <write_bloc id="0,1,2,3,4,5,6,7,8,9,10,11">
     44  <write_bloc id="0,1,2,3,4,5">
    4545    <parameter name="size_write_queue"                      value="4" />
    4646    <parameter name="size_execute_queue"                    value="4" />
    47     <parameter name="nb_bypass_write"                       value="0" />
     47    <parameter name="nb_bypass_write"                       value="1" />
     48    <parameter name="write_queue_scheme"                    value="1" />
    4849  </write_bloc>                                             
    4950
     
    8889    <parameter name="btb_size_counter"                      value="2" />
    8990    <parameter name="btb_victim_scheme"                     value="3" />
    90     <parameter name="dir_predictor_scheme"                  value="4" />
     91    <parameter name="dir_predictor_scheme"                  value="2" />
    9192                                                           
    9293    <predictor id="0">                                     
    93       <parameter name="dir_have_bht"                        value="0"  />
    94       <parameter name="dir_bht_size_shifter"                value="1"  />
     94      <parameter name="dir_have_bht"                        value="1"  />
     95      <parameter name="dir_bht_size_shifter"                value="4"  />
    9596      <parameter name="dir_bht_nb_shifter"                  value="64" />
    9697      <parameter name="dir_have_pht"                        value="1"  />
    9798      <parameter name="dir_pht_size_counter"                value="2"  />
    98       <parameter name="dir_pht_nb_counter"                  value="16" />
     99      <parameter name="dir_pht_nb_counter"                  value="64" />
    99100      <parameter name="dir_pht_size_address_share"          value="0"  />
    100101    </predictor>                                           
     
    105106      <parameter name="dir_have_pht"                        value="1" />
    106107      <parameter name="dir_pht_size_counter"                value="2" />
    107       <parameter name="dir_pht_nb_counter"                  value="64" />
     108      <parameter name="dir_pht_nb_counter"                  value="128" />
    108109      <parameter name="dir_pht_size_address_share"          value="0" />
    109110    </predictor>                                           
     
    122123    <parameter name="nb_inst_reexecute"                     value="1" />
    123124    <parameter name="nb_inst_commit"                        value="4" />
    124     <parameter name="nb_inst_branch_complete"               value="1" />
     125    <parameter name="nb_inst_branch_complete"               value="2" />
    125126    <parameter name="nb_rename_unit_select"                 value="1" />
    126127    <parameter name="nb_execute_loop_select"                value="1" />
    127     <parameter name="size_re_order_buffer"                  value="64"/>
     128    <parameter name="size_re_order_buffer"                  value="128"/>
    128129    <parameter name="nb_re_order_buffer_bank"               value="64" />
    129130    <parameter name="commit_priority"                       value="1" />
    130131    <parameter name="commit_load_balancing"                 value="1" />
    131     <parameter name="size_issue_queue"                      value="8" />
     132    <parameter name="size_issue_queue"                      value="16" />
    132133    <parameter name="nb_issue_queue_bank"                   value="4" />
    133134    <parameter name="issue_queue_scheme"                    value="0" />
     
    141142  <execute_loop id="0">
    142143    <parameter name="nb_read_unit"                          value="6" />
    143     <parameter name="nb_write_unit"                         value="12"/>
     144    <parameter name="nb_write_unit"                         value="6" />
    144145    <parameter name="nb_execute_unit"                       value="6" />
    145146    <parameter name="nb_gpr_bank"                           value="1" />
     
    183184  <link name="link_write_unit_with_write_bloc"         src="4"     dest="0.4" />
    184185  <link name="link_write_unit_with_write_bloc"         src="5"     dest="0.5" />
    185   <link name="link_write_unit_with_write_bloc"         src="6"     dest="0.6" />
    186   <link name="link_write_unit_with_write_bloc"         src="7"     dest="0.7" />
    187   <link name="link_write_unit_with_write_bloc"         src="8"     dest="0.8" />
    188   <link name="link_write_unit_with_write_bloc"         src="9"     dest="0.9" />
    189   <link name="link_write_unit_with_write_bloc"         src="10"    dest="0.10"/>
    190   <link name="link_write_unit_with_write_bloc"         src="11"    dest="0.11"/>
    191186
    192187  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
     
    273268
    274269  <link name="link_write_bloc_and_load_store_unit"     src="0.0"   dest="1"   />
    275   <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
     270  <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="0"   />
    276271  <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="0"   />
    277272  <link name="link_write_bloc_and_load_store_unit"     src="3.0"   dest="0"   />
    278273  <link name="link_write_bloc_and_load_store_unit"     src="4.0"   dest="0"   />
    279274  <link name="link_write_bloc_and_load_store_unit"     src="5.0"   dest="0"   />
    280   <link name="link_write_bloc_and_load_store_unit"     src="6.0"   dest="0"   />
    281   <link name="link_write_bloc_and_load_store_unit"     src="7.0"   dest="0"   />
    282   <link name="link_write_bloc_and_load_store_unit"     src="8.0"   dest="0"   />
    283   <link name="link_write_bloc_and_load_store_unit"     src="9.0"   dest="0"   />
    284   <link name="link_write_bloc_and_load_store_unit"     src="10.0"  dest="0"   />
    285   <link name="link_write_bloc_and_load_store_unit"     src="11.0"  dest="0"   />
    286275
    287276  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="0"   />
    288   <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="0"   />
    289   <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    290   <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="1"   />
     277  <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="1"   />
     278  <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="0"   />
     279  <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="0"   />
    291280  <link name="link_write_bloc_and_functionnal_unit"    src="4.0"   dest="0"   />
    292281  <link name="link_write_bloc_and_functionnal_unit"    src="5.0"   dest="0"   />
    293   <link name="link_write_bloc_and_functionnal_unit"    src="6.0"   dest="0"   />
    294   <link name="link_write_bloc_and_functionnal_unit"    src="7.0"   dest="0"   />
    295   <link name="link_write_bloc_and_functionnal_unit"    src="8.0"   dest="0"   />
    296   <link name="link_write_bloc_and_functionnal_unit"    src="9.0"   dest="0"   />
    297   <link name="link_write_bloc_and_functionnal_unit"    src="10.0"  dest="0"   />
    298   <link name="link_write_bloc_and_functionnal_unit"    src="11.0"  dest="0"   />
    299282
    300283  <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="0"   />
    301284  <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="0"   />
    302   <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="0"   />
    303   <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="0"   />
     285  <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
     286  <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="1"   />
    304287  <link name="link_write_bloc_and_functionnal_unit"    src="4.1"   dest="1"   />
    305288  <link name="link_write_bloc_and_functionnal_unit"    src="5.1"   dest="1"   />
    306   <link name="link_write_bloc_and_functionnal_unit"    src="6.1"   dest="1"   />
    307   <link name="link_write_bloc_and_functionnal_unit"    src="7.1"   dest="1"   />
    308   <link name="link_write_bloc_and_functionnal_unit"    src="8.1"   dest="1"   />
    309   <link name="link_write_bloc_and_functionnal_unit"    src="9.1"   dest="1"   />
    310   <link name="link_write_bloc_and_functionnal_unit"    src="10.1"  dest="1"   />
    311   <link name="link_write_bloc_and_functionnal_unit"    src="11.1"  dest="1"   />
     289
    312290  <link name="link_write_bloc_and_functionnal_unit"    src="0.2"   dest="0"   />
    313291  <link name="link_write_bloc_and_functionnal_unit"    src="1.2"   dest="0"   />
    314   <link name="link_write_bloc_and_functionnal_unit"    src="2.2"   dest="0"   />
    315   <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="0"   />
     292  <link name="link_write_bloc_and_functionnal_unit"    src="2.2"   dest="1"   />
     293  <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="1"   />
    316294  <link name="link_write_bloc_and_functionnal_unit"    src="4.2"   dest="1"   />
    317295  <link name="link_write_bloc_and_functionnal_unit"    src="5.2"   dest="1"   />
    318   <link name="link_write_bloc_and_functionnal_unit"    src="6.2"   dest="1"   />
    319   <link name="link_write_bloc_and_functionnal_unit"    src="7.2"   dest="1"   />
    320   <link name="link_write_bloc_and_functionnal_unit"    src="8.2"   dest="1"   />
    321   <link name="link_write_bloc_and_functionnal_unit"    src="9.2"   dest="1"   />
    322   <link name="link_write_bloc_and_functionnal_unit"    src="10.2"  dest="1"   />
    323   <link name="link_write_bloc_and_functionnal_unit"    src="11.2"  dest="1"   />
     296
    324297  <link name="link_write_bloc_and_functionnal_unit"    src="0.3"   dest="0"   />
    325298  <link name="link_write_bloc_and_functionnal_unit"    src="1.3"   dest="0"   />
    326   <link name="link_write_bloc_and_functionnal_unit"    src="2.3"   dest="0"   />
    327   <link name="link_write_bloc_and_functionnal_unit"    src="3.3"   dest="0"   />
     299  <link name="link_write_bloc_and_functionnal_unit"    src="2.3"   dest="1"   />
     300  <link name="link_write_bloc_and_functionnal_unit"    src="3.3"   dest="1"   />
    328301  <link name="link_write_bloc_and_functionnal_unit"    src="4.3"   dest="1"   />
    329302  <link name="link_write_bloc_and_functionnal_unit"    src="5.3"   dest="1"   />
    330   <link name="link_write_bloc_and_functionnal_unit"    src="6.3"   dest="1"   />
    331   <link name="link_write_bloc_and_functionnal_unit"    src="7.3"   dest="1"   />
    332   <link name="link_write_bloc_and_functionnal_unit"    src="8.3"   dest="1"   />
    333   <link name="link_write_bloc_and_functionnal_unit"    src="9.3"   dest="1"   />
    334   <link name="link_write_bloc_and_functionnal_unit"    src="10.3"  dest="1"   />
    335   <link name="link_write_bloc_and_functionnal_unit"    src="11.3"  dest="1"   />
     303
    336304  <link name="link_write_bloc_and_functionnal_unit"    src="0.4"   dest="0"   />
    337305  <link name="link_write_bloc_and_functionnal_unit"    src="1.4"   dest="0"   />
    338   <link name="link_write_bloc_and_functionnal_unit"    src="2.4"   dest="0"   />
    339   <link name="link_write_bloc_and_functionnal_unit"    src="3.4"   dest="0"   />
     306  <link name="link_write_bloc_and_functionnal_unit"    src="2.4"   dest="1"   />
     307  <link name="link_write_bloc_and_functionnal_unit"    src="3.4"   dest="1"   />
    340308  <link name="link_write_bloc_and_functionnal_unit"    src="4.4"   dest="1"   />
    341309  <link name="link_write_bloc_and_functionnal_unit"    src="5.4"   dest="1"   />
    342   <link name="link_write_bloc_and_functionnal_unit"    src="6.4"   dest="1"   />
    343   <link name="link_write_bloc_and_functionnal_unit"    src="7.4"   dest="1"   />
    344   <link name="link_write_bloc_and_functionnal_unit"    src="8.4"   dest="1"   />
    345   <link name="link_write_bloc_and_functionnal_unit"    src="9.4"   dest="1"   />
    346   <link name="link_write_bloc_and_functionnal_unit"    src="10.4"  dest="1"   />
    347   <link name="link_write_bloc_and_functionnal_unit"    src="11.4"  dest="1"   />
    348310
    349311  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x2_w1_0.cfg

    r117 r118  
    4646    <parameter name="size_execute_queue"                    value="1" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x2_w1_1.cfg

    r117 r118  
    4646    <parameter name="size_execute_queue"                    value="2" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x2_w1_2.cfg

    r117 r118  
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x2_w1_3.cfg

    r117 r118  
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x2_w1_4.cfg

    r117 r118  
    4646    <parameter name="size_execute_queue"                    value="4" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
     48    <parameter name="write_queue_scheme"                    value="0" />
    4849  </write_bloc>                                             
    4950                                                           
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.gen

    r117 r118  
    66  <parameter name="dispatch_load_balancing"               min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    77                                                                               
    8   <parameter name="nb_icache_port"                        min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     8  <parameter name="nb_icache_port"                        min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    99  <parameter name="icache_port_priority"                  min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    1010  <parameter name="icache_port_load_balancing"            min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    1111                                                                               
    12   <parameter name="nb_dcache_port"                        min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     12  <parameter name="nb_dcache_port"                        min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    1313  <parameter name="dcache_port_priority"                  min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    1414  <parameter name="dcache_port_load_balancing"            min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    1515                                                                               
    1616  <parameter name="nb_thread"                             min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    17   <parameter name="size_ifetch_queue"                     min="1"   max="32"   step="* 2" default="2"   level="..." description="..." />
    18   <parameter name="nb_inst_fetch"                         min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     17  <parameter name="size_ifetch_queue"                     min="1"   max="64"   step="* 2" default="2"   level="..." description="..." />
     18  <parameter name="nb_inst_fetch"                         min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    1919  <parameter name="implement_group"                                                       default="0"   level="..." description="..." />
    20   <parameter name="ras_size_queue"                        min="2"   max="8"    step="* 2" default="2"   level="..." description="..." />
    21   <parameter name="upt_size_queue"                        min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
    22   <parameter name="ufpt_size_queue"                       min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
     20  <parameter name="ras_size_queue"                        min="2"   max="16"   step="* 2" default="2"   level="..." description="..." />
     21  <parameter name="upt_size_queue"                        min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
     22  <parameter name="ufpt_size_queue"                       min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
    2323                                                                               
    2424  <parameter name="nb_decod_bloc"                         min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    2525  <parameter name="size_decod_queue"                      min="1"   max="32"   step="+ 1" default="2"   level="..." description="..." />
    2626  <parameter name="decod_queue_scheme"                    min="0"   max="1"    step="+ 1" default="0"   level="..." description="0 : one_fifo, 1 : multi_fifo" />
    27   <parameter name="nb_inst_decod"                         min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     27  <parameter name="nb_inst_decod"                         min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    2828  <parameter name="nb_context_select"                     min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    2929  <parameter name="context_select_priority"               min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     
    3131                                                                               
    3232  <parameter name="nb_rename_bloc"                        min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    33   <parameter name="nb_inst_insert"                        min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    34   <parameter name="nb_inst_retire"                        min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     33  <parameter name="nb_inst_insert"                        min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     34  <parameter name="nb_inst_retire"                        min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    3535  <parameter name="rename_select_priority"                min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    3636  <parameter name="rename_select_load_balancing"          min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     
    3838  <parameter name="nb_general_register"                   min="64"  max="1024" step="* 2" default="64"  level="..." description="..." />
    3939  <parameter name="nb_special_register"                   min="4"   max="512"  step="* 2" default="4"   level="..." description="..." />
    40   <parameter name="nb_reg_free"                           min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    41   <parameter name="nb_rename_unit_bank"                   min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     40  <parameter name="nb_reg_free"                           min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     41  <parameter name="nb_rename_unit_bank"                   min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    4242                                                                               
    43   <parameter name="nb_read_bloc"                          min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    44   <parameter name="size_read_queue"                       min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
    45   <parameter name="size_reservation_station"              min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
    46   <parameter name="nb_inst_retire_reservation_station"    min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     43  <parameter name="nb_read_bloc"                          min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     44  <parameter name="size_read_queue"                       min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
     45  <parameter name="size_reservation_station"              min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
     46  <parameter name="nb_inst_retire_reservation_station"    min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    4747                                                                               
    48   <parameter name="nb_write_bloc"                         min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    49   <parameter name="size_write_queue"                      min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
    50   <parameter name="size_execute_queue"                    min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
    51   <parameter name="nb_bypass_write"                       min="0"   max="8"    step="+ 1" default="0"   level="..." description="..." />
     48  <parameter name="nb_write_bloc"                         min="1"   max="32"   step="* 2" default="1"   level="..." description="..." />
     49  <parameter name="size_write_queue"                      min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
     50  <parameter name="size_execute_queue"                    min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
     51  <parameter name="nb_bypass_write"                       min="0"   max="16"   step="+ 1" default="0"   level="..." description="..." />
    5252  <parameter name="write_queue_scheme"                    min="0"   max="1"    step="+ 1" default="0"   level="..." description="0 : Moore, 1 : Mealy" />
    5353                                                                               
    54   <parameter name="nb_load_store_unit"                    min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     54  <parameter name="nb_load_store_unit"                    min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    5555  <parameter name="size_store_queue"                      min="2"   max="16"   step="* 2" default="2"   level="..." description="..." />
    5656  <parameter name="size_load_queue"                       min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
    5757  <parameter name="size_speculative_access_queue"         min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
    58   <parameter name="nb_port_check"                         min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     58  <parameter name="nb_port_check"                         min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    5959  <parameter name="speculative_load"                      min="0"   max="3"    step="+ 1" default="2"   level="..." description="..." />
    60   <parameter name="nb_bypass_memory"                      min="0"   max="8"    step="+ 1" default="0"   level="..." description="..." />
    61   <parameter name="nb_cache_port"                         min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    62   <parameter name="nb_inst_memory"                        min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     60  <parameter name="nb_bypass_memory"                      min="0"   max="16"   step="+ 1" default="0"   level="..." description="..." />
     61  <parameter name="nb_cache_port"                         min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     62  <parameter name="nb_inst_memory"                        min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    6363                                                                               
    64   <parameter name="nb_functionnal_unit"                   min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    65   <parameter name="nb_inst_functionnal_unit"              min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     64  <parameter name="nb_functionnal_unit"                   min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     65  <parameter name="nb_inst_functionnal_unit"              min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    6666                                                                               
    6767  <parameter name="nb_front_end"                          min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    6868  <parameter name="nb_context"                            min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    6969  <parameter name="nb_decod_unit"                         min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    70   <parameter name="nb_inst_branch_predict"                min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    71   <parameter name="nb_inst_branch_decod"                  min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    72   <parameter name="nb_inst_branch_update"                 min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     70  <parameter name="nb_inst_branch_predict"                min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     71  <parameter name="nb_inst_branch_decod"                  min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     72  <parameter name="nb_inst_branch_update"                 min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    7373  <parameter name="btb_size_queue"                        min="1"   max="512"  step="* 2" default="2"   level="..." description="..." />
    74   <parameter name="btb_associativity"                     min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    75   <parameter name="btb_size_counter"                      min="2"   max="8"    step="* 2" default="2"   level="..." description="..." />
     74  <parameter name="btb_associativity"                     min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     75  <parameter name="btb_size_counter"                      min="2"   max="16"   step="* 2" default="2"   level="..." description="..." />
    7676  <parameter name="btb_victim_scheme"                     min="0"   max="5"    step="+ 1" default="1"   level="..." description="0 : Random, 1 : Round Robin, 2 : Not Last Used, 3 : Pseudo LRU, 4 : Least Recently Used, 5 : FIFO" />
    7777  <parameter name="dir_predictor_scheme"                  min="0"   max="8"    step="+ 1" default="1"   level="..." description="0 : Never take, 1 : Always Take, 2 : Static, 3 : Last Take, 4 : Counter, 5 : Local predictor, 6 : Global predictor, 7 : Meta predictor, 8 : Custom predictor" />
     
    8686  <parameter name="nb_ooo_engine"                         min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    8787  <parameter name="nb_rename_unit"                        min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    88   <parameter name="nb_inst_issue"                         min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    89   <parameter name="nb_inst_reexecute"                     min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    90   <parameter name="nb_inst_commit"                        min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    91   <parameter name="nb_inst_branch_complete"               min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    92   <parameter name="nb_rename_unit_select"                 min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     88  <parameter name="nb_inst_issue"                         min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     89  <parameter name="nb_inst_reexecute"                     min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     90  <parameter name="nb_inst_commit"                        min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     91  <parameter name="nb_inst_branch_complete"               min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     92  <parameter name="nb_rename_unit_select"                 min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    9393  <parameter name="nb_execute_loop_select"                min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    9494  <parameter name="size_re_order_buffer"                  min="1"   max="256"  step="* 2" default="1"   level="..." description="..." />
     
    9696  <parameter name="commit_priority"                       min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    9797  <parameter name="commit_load_balancing"                 min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    98   <parameter name="size_issue_queue"                      min="1"   max="32"   step="* 2" default="2"   level="..." description="..." />
    99   <parameter name="nb_issue_queue_bank"                   min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
     98  <parameter name="size_issue_queue"                      min="1"   max="64"   step="* 2" default="2"   level="..." description="..." />
     99  <parameter name="nb_issue_queue_bank"                   min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
    100100  <parameter name="issue_queue_scheme"                    min="0"   max="1"    step="+ 1" default="0"   level="..." description="0 : in_order, 1 : in_bundle_order, 2 : out_of_order" />
    101101  <parameter name="issue_priority"                        min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    102102  <parameter name="issue_load_balancing"                  min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    103   <parameter name="size_reexecute_queue"                  min="1"   max="8"    step="* 2" default="2"   level="..." description="..." />
     103  <parameter name="size_reexecute_queue"                  min="1"   max="16"   step="* 2" default="2"   level="..." description="..." />
    104104  <parameter name="reexecute_priority"                    min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    105105  <parameter name="reexecute_load_balancing"              min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    106106                                                                               
    107107  <parameter name="nb_execute_loop"                       min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    108   <parameter name="nb_read_unit"                          min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    109   <parameter name="nb_execute_unit"                       min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    110   <parameter name="nb_write_unit"                         min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    111   <parameter name="nb_gpr_bank"                           min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    112   <parameter name="nb_gpr_port_read_by_bank"              min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    113   <parameter name="nb_gpr_port_write_by_bank"             min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    114   <parameter name="nb_spr_bank"                           min="1"   max="8"    step="* 2" default="1"   level="..." description="..." />
    115   <parameter name="nb_spr_port_read_by_bank"              min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    116   <parameter name="nb_spr_port_write_by_bank"             min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
     108  <parameter name="nb_read_unit"                          min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     109  <parameter name="nb_execute_unit"                       min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     110  <parameter name="nb_write_unit"                         min="1"   max="32"   step="+ 1" default="1"   level="..." description="..." />
     111  <parameter name="nb_gpr_bank"                           min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     112  <parameter name="nb_gpr_port_read_by_bank"              min="1"   max="32"   step="+ 1" default="1"   level="..." description="..." />
     113  <parameter name="nb_gpr_port_write_by_bank"             min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     114  <parameter name="nb_spr_bank"                           min="1"   max="16"   step="* 2" default="1"   level="..." description="..." />
     115  <parameter name="nb_spr_port_read_by_bank"              min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
     116  <parameter name="nb_spr_port_write_by_bank"             min="1"   max="16"   step="+ 1" default="1"   level="..." description="..." />
    117117  <parameter name="execution_unit_to_write_unit_priority" min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
    118118  <parameter name="read_unit_to_execution_unit_priority"  min="1"   max="8"    step="+ 1" default="1"   level="..." description="..." />
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.sim

    r117 r118  
    1111  <parameter  name="use_information"                        value="0"       />
    1212  <parameter  name="use_header"                             value="0"       />
     13                                                           
     14  <parameter  name="directory_statistics"                   value="."       />
     15  <parameter  name="directory_vhdl"                         value="."       />
     16  <parameter  name="directory_position"                     value="."       />
     17  <parameter  name="directory_log"                          value="/dsk/l1/misc/Morpheo/log/"  />
    1318
    1419  <parameter  name="statistics_cycle_start"                 value="5"       />
     
    1722  <parameter  name="simulation_nb_cycle"                    value="1000000000"/>
    1823  <parameter  name="simulation_nb_instruction"              value="0"       />
    19                                                            
    20   <parameter  name="directory_statistics"                   value="."       />
    21   <parameter  name="directory_vhdl"                         value="."       />
    22   <parameter  name="directory_position"                     value="."       />
    23   <parameter  name="directory_log"                          value="/dsk/l1/misc/Morpheo/log/"       />
    2424                                                           
    2525  <parameter  name="debug_level"                            value="0"       />
  • trunk/IPs/systemC/processor/Morpheo/Files/debug.sim

    r117 r118  
    1111  <parameter  name="use_information"                        value="0"       />
    1212  <parameter  name="use_header"                             value="0"       />
     13                                                           
     14  <parameter  name="directory_statistics"                   value="."       />
     15  <parameter  name="directory_vhdl"                         value="."       />
     16  <parameter  name="directory_position"                     value="."       />
     17  <parameter  name="directory_log"                          value="/dsk/l1/misc/Morpheo/log/"       />
    1318
    1419  <parameter  name="statistics_cycle_start"                 value="5"       />
    1520  <parameter  name="statistics_period"                      value="0"       />
    1621                                                           
    17   <parameter  name="simulation_nb_cycle"                    value="100000"  />
     22  <parameter  name="simulation_nb_cycle"                    value="500000"  />
    1823  <parameter  name="simulation_nb_instruction"              value="0"       />
    1924                                                           
    20   <parameter  name="directory_statistics"                   value="."       />
    21   <parameter  name="directory_vhdl"                         value="."       />
    22   <parameter  name="directory_position"                     value="."       />
    23   <parameter  name="directory_log"                          value="."       />
    24                                                            
    2525  <parameter  name="debug_level"                            value="0"       />
    26   <parameter  name="debug_cycle_start"                      value="000"    />
    27   <parameter  name="debug_cycle_stop"                       value="100"    />
     26  <parameter  name="debug_cycle_start"                      value="4900"       />
     27  <parameter  name="debug_cycle_stop"                       value="5050"      />
    2828  <parameter  name="debug_have_log_file"                    value="0"       />
    2929  <parameter  name="debug_idle_cycle"                       value="1000"    />
    3030  <parameter  name="debug_idle_time"                        value="10"      />
    3131
    32   <component  name="Comparator"                             model="systemc" debug="0" />
    33   <component  name="Counter"                                model="systemc" debug="0" />
    34   <component  name="Divider"                                model="systemc" debug="0" />
    35   <component  name="Multiplier"                             model="systemc" debug="0" />
    36   <component  name="Priority"                               model="systemc" debug="0" />
    37   <component  name="Queue_Control"                          model="systemc" debug="0" />         
    38   <component  name="Queue"                                  model="systemc" debug="0" />
    39   <component  name="RegisterFile_Monolithic"                model="systemc" debug="0" />
    40   <component  name="RegisterFile_Multi_Banked"              model="systemc" debug="0" />
    41   <component  name="RegisterFile"                           model="systemc" debug="0" />
    42   <component  name="Select_Priority_Fixed"                  model="systemc" debug="0" />
    43   <component  name="Select"                                 model="systemc" debug="0" />
    44   <component  name="Shifter"                                model="systemc" debug="0" />
    45   <component  name="Sort"                                   model="systemc" debug="0" />
    46   <component  name="Victim_Pseudo_LRU"                      model="systemc" debug="0" />
    47   <component  name="Victim"                                 model="systemc" debug="0" />
    48   <component  name="Execute_loop_Glue"                      model="systemc" debug="0" />
    49   <component  name="Functionnal_unit"                       model="systemc" debug="0" />
    50   <component  name="Load_store_unit"                        model="systemc" debug="0" />
    51   <component  name="Read_queue"                             model="systemc" debug="0" />
    52   <component  name="Reservation_station"                    model="systemc" debug="0" />
    53   <component  name="Read_unit"                              model="systemc" debug="0" />
    54   <component  name="Execute_queue"                          model="systemc" debug="0" />
    55   <component  name="Write_queue"                            model="systemc" debug="0" />
    56   <component  name="Write_unit"                             model="systemc" debug="0" />
    57   <component  name="Execution_unit_to_Write_unit"           model="systemc" debug="0" />
    58   <component  name="Read_unit_to_Execution_unit"            model="systemc" debug="0" />
    59   <component  name="Register_unit_Glue"                     model="systemc" debug="0" />
    60   <component  name="Register_unit"                          model="systemc" debug="0" />
    61   <component  name="Execute_loop"                           model="systemc" debug="0" />
    62   <component  name="Commit_unit"                            model="systemc" debug="0" />
    63   <component  name="Issue_queue"                            model="systemc" debug="0" />
    64   <component  name="OOO_Engine_Glue"                        model="systemc" debug="0" />
    65   <component  name="Reexecute_unit"                         model="systemc" debug="0" />
    66   <component  name="Load_Store_pointer_unit"                model="systemc" debug="0" />
    67   <component  name="Dependency_checking_unit"               model="systemc" debug="0" />
    68   <component  name="Free_List_unit"                         model="systemc" debug="0" />
    69   <component  name="Register_Address_Translation_unit"      model="systemc" debug="0" />
    70   <component  name="Register_translation_unit_Glue"         model="systemc" debug="0" />
    71   <component  name="Stat_List_unit"                         model="systemc" debug="0" />
    72   <component  name="Register_translation_unit"              model="systemc" debug="0" />
    73   <component  name="Rename_unit_Glue"                       model="systemc" debug="0" />
    74   <component  name="Rename_select"                          model="systemc" debug="0" />
    75   <component  name="Rename_unit"                            model="systemc" debug="0" />
    76   <component  name="Special_Register_unit"                  model="systemc" debug="0" />
    77   <component  name="OOO_Engine"                             model="systemc" debug="0" />
    78   <component  name="Context_State"                          model="systemc" debug="0" />
    79   <component  name="Decod"                                  model="systemc" debug="0" />
    80   <component  name="Decod_queue"                            model="systemc" debug="0" />
    81   <component  name="Decod_unit"                             model="systemc" debug="0" />
    82   <component  name="Front_end_Glue"                         model="systemc" debug="0" />
    83   <component  name="Address_management"                     model="systemc" debug="0" />
    84   <component  name="Ifetch_queue"                           model="systemc" debug="0" />
    85   <component  name="Ifetch_unit_Glue"                       model="systemc" debug="0" />
    86   <component  name="Ifetch_unit"                            model="systemc" debug="0" />
    87   <component  name="Branch_Target_Buffer_Glue"              model="systemc" debug="0" />
    88   <component  name="Branch_Target_Buffer_Register"          model="systemc" debug="0" />
    89   <component  name="Branch_Target_Buffer"                   model="systemc" debug="0" />
    90   <component  name="Direction_Glue"                         model="systemc" debug="0" />
    91   <component  name="Direction"                              model="systemc" debug="0" />
    92   <component  name="Prediction_unit_Glue"                   model="systemc" debug="0" />
    93   <component  name="Return_Address_Stack"                   model="systemc" debug="0" />
    94   <component  name="Update_Prediction_Table"                model="systemc" debug="0" />
    95   <component  name="Prediction_unit"                        model="systemc" debug="0" />
    96   <component  name="Front_end"                              model="systemc" debug="0" />
    97   <component  name="Icache_Access"                          model="systemc" debug="0" />
    98   <component  name="Dcache_Access"                          model="systemc" debug="0" />
    99   <component  name="Core_Glue"                              model="systemc" debug="0" />
    100   <component  name="Core"                                   model="systemc" debug="0" />
    101   <component  name="TopLevel"                               model="systemc" debug="0" />
     32  <component  name="Comparator"                             model="systemc" debug="1" />
     33  <component  name="Counter"                                model="systemc" debug="1" />
     34  <component  name="Divider"                                model="systemc" debug="1" />
     35  <component  name="Multiplier"                             model="systemc" debug="1" />
     36  <component  name="Priority"                               model="systemc" debug="1" />
     37  <component  name="Queue_Control"                          model="systemc" debug="1" />         
     38  <component  name="Queue"                                  model="systemc" debug="1" />
     39  <component  name="RegisterFile_Monolithic"                model="systemc" debug="1" />
     40  <component  name="RegisterFile_Multi_Banked"              model="systemc" debug="1" />
     41  <component  name="RegisterFile"                           model="systemc" debug="1" />
     42  <component  name="Select_Priority_Fixed"                  model="systemc" debug="1" />
     43  <component  name="Select"                                 model="systemc" debug="1" />
     44  <component  name="Shifter"                                model="systemc" debug="1" />
     45  <component  name="Sort"                                   model="systemc" debug="1" />
     46  <component  name="Victim_Pseudo_LRU"                      model="systemc" debug="1" />
     47  <component  name="Victim"                                 model="systemc" debug="1" />
     48  <component  name="Execute_loop_Glue"                      model="systemc" debug="1" />
     49  <component  name="Functionnal_unit"                       model="systemc" debug="1" />
     50  <component  name="Load_store_unit"                        model="systemc" debug="1" />
     51  <component  name="Read_queue"                             model="systemc" debug="1" />
     52  <component  name="Reservation_station"                    model="systemc" debug="1" />
     53  <component  name="Read_unit"                              model="systemc" debug="1" />
     54  <component  name="Execute_queue"                          model="systemc" debug="1" />
     55  <component  name="Write_queue"                            model="systemc" debug="1" />
     56  <component  name="Write_unit"                             model="systemc" debug="1" />
     57  <component  name="Execution_unit_to_Write_unit"           model="systemc" debug="1" />
     58  <component  name="Read_unit_to_Execution_unit"            model="systemc" debug="1" />
     59  <component  name="Register_unit_Glue"                     model="systemc" debug="1" />
     60  <component  name="Register_unit"                          model="systemc" debug="1" />
     61  <component  name="Execute_loop"                           model="systemc" debug="1" />
     62  <component  name="Commit_unit"                            model="systemc" debug="1" />
     63  <component  name="Issue_queue"                            model="systemc" debug="1" />
     64  <component  name="OOO_Engine_Glue"                        model="systemc" debug="1" />
     65  <component  name="Reexecute_unit"                         model="systemc" debug="1" />
     66  <component  name="Load_Store_pointer_unit"                model="systemc" debug="1" />
     67  <component  name="Dependency_checking_unit"               model="systemc" debug="1" />
     68  <component  name="Free_List_unit"                         model="systemc" debug="1" />
     69  <component  name="Register_Address_Translation_unit"      model="systemc" debug="1" />
     70  <component  name="Register_translation_unit_Glue"         model="systemc" debug="1" />
     71  <component  name="Stat_List_unit"                         model="systemc" debug="1" />
     72  <component  name="Register_translation_unit"              model="systemc" debug="1" />
     73  <component  name="Rename_unit_Glue"                       model="systemc" debug="1" />
     74  <component  name="Rename_select"                          model="systemc" debug="1" />
     75  <component  name="Rename_unit"                            model="systemc" debug="1" />
     76  <component  name="Special_Register_unit"                  model="systemc" debug="1" />
     77  <component  name="OOO_Engine"                             model="systemc" debug="1" />
     78  <component  name="Context_State"                          model="systemc" debug="1" />
     79  <component  name="Decod"                                  model="systemc" debug="1" />
     80  <component  name="Decod_queue"                            model="systemc" debug="1" />
     81  <component  name="Decod_unit"                             model="systemc" debug="1" />
     82  <component  name="Front_end_Glue"                         model="systemc" debug="1" />
     83  <component  name="Address_management"                     model="systemc" debug="1" />
     84  <component  name="Ifetch_queue"                           model="systemc" debug="1" />
     85  <component  name="Ifetch_unit_Glue"                       model="systemc" debug="1" />
     86  <component  name="Ifetch_unit"                            model="systemc" debug="1" />
     87  <component  name="Branch_Target_Buffer_Glue"              model="systemc" debug="1" />
     88  <component  name="Branch_Target_Buffer_Register"          model="systemc" debug="1" />
     89  <component  name="Branch_Target_Buffer"                   model="systemc" debug="1" />
     90  <component  name="Direction_Glue"                         model="systemc" debug="1" />
     91  <component  name="Direction"                              model="systemc" debug="1" />
     92  <component  name="Prediction_unit_Glue"                   model="systemc" debug="1" />
     93  <component  name="Return_Address_Stack"                   model="systemc" debug="1" />
     94  <component  name="Update_Prediction_Table"                model="systemc" debug="1" />
     95  <component  name="Prediction_unit"                        model="systemc" debug="1" />
     96  <component  name="Front_end"                              model="systemc" debug="1" />
     97  <component  name="Icache_Access"                          model="systemc" debug="1" />
     98  <component  name="Dcache_Access"                          model="systemc" debug="1" />
     99  <component  name="Core_Glue"                              model="systemc" debug="1" />
     100  <component  name="Core"                                   model="systemc" debug="1" />
     101  <component  name="TopLevel"                               model="systemc" debug="1" />
    102102
    103103</parameters>
  • trunk/Makefile.tools_path

    r117 r118  
    1212# LABS
    1313#----------------------------------------------------------
    14 labs_ENV                                = export PATH=$${PATH}:/bin:/usr/bin
     14labs_ENV                                = export PATH=$${PATH}:/bin:/usr/bin:/users/chaos/kane/Softwares/distcc/bin
    1515labs_SYSTEMC_systemc                    = /users/chaos/kane/Softwares/systemc-2.1.v1
    1616labs_SYSTEMC_systemcass                 = /users/chaos/kane/Softwares/systemcass
  • trunk/Platforms/Test/src/test.cpp

    r117 r118  
    295295     nb_tty,
    296296     name_tty,
    297      true,
     297     false,
    298298     
    299299     nb_component_ramlock,
  • trunk/Softwares/Common/src/c/func_io.c

    r101 r118  
    11#include "func_io.h"
    22#include "thread_info.h"
     3#include "cpu_info.h"
    34
    45void tty (unsigned char data)
    56{
    6   unsigned int * addr =(unsigned int*)(TTY_BASE + (get_thread_id() << 4) + 0);
     7  unsigned int * addr =(unsigned int*)(TTY_BASE + (get_cpu_id() << 4) + 0);
    78
    89  *(addr) = data;
     
    1112void print (char * data)
    1213{
    13   unsigned int * addr =(unsigned int*)(TTY_BASE + (get_thread_id() << 4) + 0);
     14  unsigned int * addr =(unsigned int*)(TTY_BASE + (get_cpu_id() << 4) + 0);
    1415
    1516  while ((*data) != '\0')
     
    2223void show (unsigned int data)
    2324{
    24   unsigned int * addr =(unsigned int*)(TTY_BASE + (get_thread_id() << 4) + 8);
     25  unsigned int * addr =(unsigned int*)(TTY_BASE + (get_cpu_id() << 4) + 8);
    2526
    2627  *(addr) = data;
     
    2930void quit (unsigned int data)
    3031{
    31   unsigned int * addr = (unsigned int*)(TTY_BASE + (get_thread_id() << 4) + 4);
     32  unsigned int * addr = (unsigned int*)(TTY_BASE + (get_cpu_id() << 4) + 4);
    3233
    3334  *(addr) = data;
  • trunk/Softwares/MiBench/src/c/benchmark.c

    r117 r118  
    2424//-----[ network ]--------------------------------
    2525int main_dijkstra           (int argc, char *argv[]);
    26 //-----[ office ]---------------------------------
     26//-----[ security ]-------------------------------
    2727int main_sha                (int argc, char *argv[]);
    2828
  • trunk/Softwares/Test/Test_067/src/c/main.c

    r114 r118  
    1414int main()
    1515{
    16   for (int i=0; i<10; ++i)
     16  const int iteration = 10;
     17 
     18  for (int i=0; i<iteration; ++i)
    1719    printf("i : %d\n",i);
    1820 
  • trunk/Softwares/Test/Test_071/src/sys/crt0.s

    r117 r118  
    4343        /* 1024 instructions */
    4444        /* - 3 instructions for the loop */
    45         l.or    r0, r0, r0
    46         l.or    r0, r0, r0
    47         l.or    r0, r0, r0
    48         l.or    r0, r0, r0
    49         l.or    r0, r0, r0
    50         l.or    r0, r0, r0
    51         l.or    r0, r0, r0
    52         l.or    r0, r0, r0
    53         l.or    r0, r0, r0
    54         l.or    r0, r0, r0
    55         l.or    r0, r0, r0
    56         l.or    r0, r0, r0
    57         l.or    r0, r0, r0
    58         l.or    r0, r0, r0
    59         l.or    r0, r0, r0
    60         l.or    r0, r0, r0
    61         l.or    r0, r0, r0
    62         l.or    r0, r0, r0
    63         l.or    r0, r0, r0
    64         l.or    r0, r0, r0
    65         l.or    r0, r0, r0
    66         l.or    r0, r0, r0
    67         l.or    r0, r0, r0
    68         l.or    r0, r0, r0
    69         l.or    r0, r0, r0
    70         l.or    r0, r0, r0
    71         l.or    r0, r0, r0
    72         l.or    r0, r0, r0
    73         l.or    r0, r0, r0
    74         l.or    r0, r0, r0
    75         l.or    r0, r0, r0
    76         l.or    r0, r0, r0
    77         l.or    r0, r0, r0
    78         l.or    r0, r0, r0
    79         l.or    r0, r0, r0
    80         l.or    r0, r0, r0
    81         l.or    r0, r0, r0
    82         l.or    r0, r0, r0
    83         l.or    r0, r0, r0
    84         l.or    r0, r0, r0
    85         l.or    r0, r0, r0
    86         l.or    r0, r0, r0
    87         l.or    r0, r0, r0
    88         l.or    r0, r0, r0
    89         l.or    r0, r0, r0
    90         l.or    r0, r0, r0
    91         l.or    r0, r0, r0
    92         l.or    r0, r0, r0
    93         l.or    r0, r0, r0
    94         l.or    r0, r0, r0
    95         l.or    r0, r0, r0
    96         l.or    r0, r0, r0
    97         l.or    r0, r0, r0
    98         l.or    r0, r0, r0
    99         l.or    r0, r0, r0
    100         l.or    r0, r0, r0
    101         l.or    r0, r0, r0
    102         l.or    r0, r0, r0
    103         l.or    r0, r0, r0
    104         l.or    r0, r0, r0
    105         l.or    r0, r0, r0
    106         l.or    r0, r0, r0
    107         l.or    r0, r0, r0
    108         l.or    r0, r0, r0
    109         l.or    r0, r0, r0
    110         l.or    r0, r0, r0
    111         l.or    r0, r0, r0
    112         l.or    r0, r0, r0
    113         l.or    r0, r0, r0
    114         l.or    r0, r0, r0
    115         l.or    r0, r0, r0
    116         l.or    r0, r0, r0
    117         l.or    r0, r0, r0
    118         l.or    r0, r0, r0
    119         l.or    r0, r0, r0
    120         l.or    r0, r0, r0
    121         l.or    r0, r0, r0
    122         l.or    r0, r0, r0
    123         l.or    r0, r0, r0
    124         l.or    r0, r0, r0
    125         l.or    r0, r0, r0
    126         l.or    r0, r0, r0
    127         l.or    r0, r0, r0
    128         l.or    r0, r0, r0
    129         l.or    r0, r0, r0
    130         l.or    r0, r0, r0
    131         l.or    r0, r0, r0
    132         l.or    r0, r0, r0
    133         l.or    r0, r0, r0
    134         l.or    r0, r0, r0
    135         l.or    r0, r0, r0
    136         l.or    r0, r0, r0
    137         l.or    r0, r0, r0
    138         l.or    r0, r0, r0
    139         l.or    r0, r0, r0
    140         l.or    r0, r0, r0
    141         l.or    r0, r0, r0
    142         l.or    r0, r0, r0
    143         l.or    r0, r0, r0
    144         l.or    r0, r0, r0
    145         l.or    r0, r0, r0
    146         l.or    r0, r0, r0
    147         l.or    r0, r0, r0
    148         l.or    r0, r0, r0
    149         l.or    r0, r0, r0
    150         l.or    r0, r0, r0
    151         l.or    r0, r0, r0
    152         l.or    r0, r0, r0
    153         l.or    r0, r0, r0
    154         l.or    r0, r0, r0
    155         l.or    r0, r0, r0
    156         l.or    r0, r0, r0
    157         l.or    r0, r0, r0
    158         l.or    r0, r0, r0
    159         l.or    r0, r0, r0
    160         l.or    r0, r0, r0
    161         l.or    r0, r0, r0
    162         l.or    r0, r0, r0
    163         l.or    r0, r0, r0
    164         l.or    r0, r0, r0
    165         l.or    r0, r0, r0
    166         l.or    r0, r0, r0
    167         l.or    r0, r0, r0
    168         l.or    r0, r0, r0
    169         l.or    r0, r0, r0
    170         l.or    r0, r0, r0
    171         l.or    r0, r0, r0
    172         l.or    r0, r0, r0
    173         l.or    r0, r0, r0
    174         l.or    r0, r0, r0
    175         l.or    r0, r0, r0
    176         l.or    r0, r0, r0
    177         l.or    r0, r0, r0
    178         l.or    r0, r0, r0
    179         l.or    r0, r0, r0
    180         l.or    r0, r0, r0
    181         l.or    r0, r0, r0
    182         l.or    r0, r0, r0
    183         l.or    r0, r0, r0
    184         l.or    r0, r0, r0
    185         l.or    r0, r0, r0
    186         l.or    r0, r0, r0
    187         l.or    r0, r0, r0
    188         l.or    r0, r0, r0
    189         l.or    r0, r0, r0
    190         l.or    r0, r0, r0
    191         l.or    r0, r0, r0
    192         l.or    r0, r0, r0
    193         l.or    r0, r0, r0
    194         l.or    r0, r0, r0
    195         l.or    r0, r0, r0
    196         l.or    r0, r0, r0
    197         l.or    r0, r0, r0
    198         l.or    r0, r0, r0
    199         l.or    r0, r0, r0
    200         l.or    r0, r0, r0
    201         l.or    r0, r0, r0
    202         l.or    r0, r0, r0
    203         l.or    r0, r0, r0
    204         l.or    r0, r0, r0
    205         l.or    r0, r0, r0
    206         l.or    r0, r0, r0
    207         l.or    r0, r0, r0
    208         l.or    r0, r0, r0
    209         l.or    r0, r0, r0
    210         l.or    r0, r0, r0
    211         l.or    r0, r0, r0
    212         l.or    r0, r0, r0
    213         l.or    r0, r0, r0
    214         l.or    r0, r0, r0
    215         l.or    r0, r0, r0
    216         l.or    r0, r0, r0
    217         l.or    r0, r0, r0
    218         l.or    r0, r0, r0
    219         l.or    r0, r0, r0
    220         l.or    r0, r0, r0
    221         l.or    r0, r0, r0
    222         l.or    r0, r0, r0
    223         l.or    r0, r0, r0
    224         l.or    r0, r0, r0
    225         l.or    r0, r0, r0
    226         l.or    r0, r0, r0
    227         l.or    r0, r0, r0
    228         l.or    r0, r0, r0
    229         l.or    r0, r0, r0
    230         l.or    r0, r0, r0
    231         l.or    r0, r0, r0
    232         l.or    r0, r0, r0
    233         l.or    r0, r0, r0
    234         l.or    r0, r0, r0
    235         l.or    r0, r0, r0
    236         l.or    r0, r0, r0
    237         l.or    r0, r0, r0
    238         l.or    r0, r0, r0
    239         l.or    r0, r0, r0
    240         l.or    r0, r0, r0
    241         l.or    r0, r0, r0
    242         l.or    r0, r0, r0
    243         l.or    r0, r0, r0
    244         l.or    r0, r0, r0
    245         l.or    r0, r0, r0
    246         l.or    r0, r0, r0
    247         l.or    r0, r0, r0
    248         l.or    r0, r0, r0
    249         l.or    r0, r0, r0
    250         l.or    r0, r0, r0
    251         l.or    r0, r0, r0
    252         l.or    r0, r0, r0
    253         l.or    r0, r0, r0
    254         l.or    r0, r0, r0
    255         l.or    r0, r0, r0
    256         l.or    r0, r0, r0
    257         l.or    r0, r0, r0
    258         l.or    r0, r0, r0
    259         l.or    r0, r0, r0
    260         l.or    r0, r0, r0
    261         l.or    r0, r0, r0
    262         l.or    r0, r0, r0
    263         l.or    r0, r0, r0
    264         l.or    r0, r0, r0
    265         l.or    r0, r0, r0
    266         l.or    r0, r0, r0
    267         l.or    r0, r0, r0
    268         l.or    r0, r0, r0
    269         l.or    r0, r0, r0
    270         l.or    r0, r0, r0
    271         l.or    r0, r0, r0
    272         l.or    r0, r0, r0
    273         l.or    r0, r0, r0
    274         l.or    r0, r0, r0
    275         l.or    r0, r0, r0
    276         l.or    r0, r0, r0
    277         l.or    r0, r0, r0
    278         l.or    r0, r0, r0
    279         l.or    r0, r0, r0
    280         l.or    r0, r0, r0
    281         l.or    r0, r0, r0
    282         l.or    r0, r0, r0
    283         l.or    r0, r0, r0
    284         l.or    r0, r0, r0
    285         l.or    r0, r0, r0
    286         l.or    r0, r0, r0
    287         l.or    r0, r0, r0
    288         l.or    r0, r0, r0
    289         l.or    r0, r0, r0
    290         l.or    r0, r0, r0
    291         l.or    r0, r0, r0
    292         l.or    r0, r0, r0
    293         l.or    r0, r0, r0
    294         l.or    r0, r0, r0
    295         l.or    r0, r0, r0
    296         l.or    r0, r0, r0
    297         l.or    r0, r0, r0
    298         l.or    r0, r0, r0
    299         l.or    r0, r0, r0
    300         l.or    r0, r0, r0
    301         l.or    r0, r0, r0
    302         l.or    r0, r0, r0
    303         l.or    r0, r0, r0
    304         l.or    r0, r0, r0
    305         l.or    r0, r0, r0
    306         l.or    r0, r0, r0
    307         l.or    r0, r0, r0
    308         l.or    r0, r0, r0
    309         l.or    r0, r0, r0
    310         l.or    r0, r0, r0
    311         l.or    r0, r0, r0
    312         l.or    r0, r0, r0
    313         l.or    r0, r0, r0
    314         l.or    r0, r0, r0
    315         l.or    r0, r0, r0
    316         l.or    r0, r0, r0
    317         l.or    r0, r0, r0
    318         l.or    r0, r0, r0
    319         l.or    r0, r0, r0
    320         l.or    r0, r0, r0
    321         l.or    r0, r0, r0
    322         l.or    r0, r0, r0
    323         l.or    r0, r0, r0
    324         l.or    r0, r0, r0
    325         l.or    r0, r0, r0
    326         l.or    r0, r0, r0
    327         l.or    r0, r0, r0
    328         l.or    r0, r0, r0
    329         l.or    r0, r0, r0
    330         l.or    r0, r0, r0
    331         l.or    r0, r0, r0
    332         l.or    r0, r0, r0
    333         l.or    r0, r0, r0
    334         l.or    r0, r0, r0
    335         l.or    r0, r0, r0
    336         l.or    r0, r0, r0
    337         l.or    r0, r0, r0
    338         l.or    r0, r0, r0
    339         l.or    r0, r0, r0
    340         l.or    r0, r0, r0
    341         l.or    r0, r0, r0
    342         l.or    r0, r0, r0
    343         l.or    r0, r0, r0
    344         l.or    r0, r0, r0
    345         l.or    r0, r0, r0
    346         l.or    r0, r0, r0
    347         l.or    r0, r0, r0
    348         l.or    r0, r0, r0
    349         l.or    r0, r0, r0
    350         l.or    r0, r0, r0
    351         l.or    r0, r0, r0
    352         l.or    r0, r0, r0
    353         l.or    r0, r0, r0
    354         l.or    r0, r0, r0
    355         l.or    r0, r0, r0
    356         l.or    r0, r0, r0
    357         l.or    r0, r0, r0
    358         l.or    r0, r0, r0
    359         l.or    r0, r0, r0
    360         l.or    r0, r0, r0
    361         l.or    r0, r0, r0
    362         l.or    r0, r0, r0
    363         l.or    r0, r0, r0
    364         l.or    r0, r0, r0
    365         l.or    r0, r0, r0
    366         l.or    r0, r0, r0
    367         l.or    r0, r0, r0
    368         l.or    r0, r0, r0
    369         l.or    r0, r0, r0
    370         l.or    r0, r0, r0
    371         l.or    r0, r0, r0
    372         l.or    r0, r0, r0
    373         l.or    r0, r0, r0
    374         l.or    r0, r0, r0
    375         l.or    r0, r0, r0
    376         l.or    r0, r0, r0
    377         l.or    r0, r0, r0
    378         l.or    r0, r0, r0
    379         l.or    r0, r0, r0
    380         l.or    r0, r0, r0
    381         l.or    r0, r0, r0
    382         l.or    r0, r0, r0
    383         l.or    r0, r0, r0
    384         l.or    r0, r0, r0
    385         l.or    r0, r0, r0
    386         l.or    r0, r0, r0
    387         l.or    r0, r0, r0
    388         l.or    r0, r0, r0
    389         l.or    r0, r0, r0
    390         l.or    r0, r0, r0
    391         l.or    r0, r0, r0
    392         l.or    r0, r0, r0
    393         l.or    r0, r0, r0
    394         l.or    r0, r0, r0
    395         l.or    r0, r0, r0
    396         l.or    r0, r0, r0
    397         l.or    r0, r0, r0
    398         l.or    r0, r0, r0
    399         l.or    r0, r0, r0
    400         l.or    r0, r0, r0
    401         l.or    r0, r0, r0
    402         l.or    r0, r0, r0
    403         l.or    r0, r0, r0
    404         l.or    r0, r0, r0
    405         l.or    r0, r0, r0
    406         l.or    r0, r0, r0
    407         l.or    r0, r0, r0
    408         l.or    r0, r0, r0
    409         l.or    r0, r0, r0
    410         l.or    r0, r0, r0
    411         l.or    r0, r0, r0
    412         l.or    r0, r0, r0
    413         l.or    r0, r0, r0
    414         l.or    r0, r0, r0
    415         l.or    r0, r0, r0
    416         l.or    r0, r0, r0
    417         l.or    r0, r0, r0
    418         l.or    r0, r0, r0
    419         l.or    r0, r0, r0
    420         l.or    r0, r0, r0
    421         l.or    r0, r0, r0
    422         l.or    r0, r0, r0
    423         l.or    r0, r0, r0
    424         l.or    r0, r0, r0
    425         l.or    r0, r0, r0
    426         l.or    r0, r0, r0
    427         l.or    r0, r0, r0
    428         l.or    r0, r0, r0
    429         l.or    r0, r0, r0
    430         l.or    r0, r0, r0
    431         l.or    r0, r0, r0
    432         l.or    r0, r0, r0
    433         l.or    r0, r0, r0
    434         l.or    r0, r0, r0
    435         l.or    r0, r0, r0
    436         l.or    r0, r0, r0
    437         l.or    r0, r0, r0
    438         l.or    r0, r0, r0
    439         l.or    r0, r0, r0
    440         l.or    r0, r0, r0
    441         l.or    r0, r0, r0
    442         l.or    r0, r0, r0
    443         l.or    r0, r0, r0
    444         l.or    r0, r0, r0
    445         l.or    r0, r0, r0
    446         l.or    r0, r0, r0
    447         l.or    r0, r0, r0
    448         l.or    r0, r0, r0
    449         l.or    r0, r0, r0
    450         l.or    r0, r0, r0
    451         l.or    r0, r0, r0
    452         l.or    r0, r0, r0
    453         l.or    r0, r0, r0
    454         l.or    r0, r0, r0
    455         l.or    r0, r0, r0
    456         l.or    r0, r0, r0
    457         l.or    r0, r0, r0
    458         l.or    r0, r0, r0
    459         l.or    r0, r0, r0
    460         l.or    r0, r0, r0
    461         l.or    r0, r0, r0
    462         l.or    r0, r0, r0
    463         l.or    r0, r0, r0
    464         l.or    r0, r0, r0
    465         l.or    r0, r0, r0
    466         l.or    r0, r0, r0
    467         l.or    r0, r0, r0
    468         l.or    r0, r0, r0
    469         l.or    r0, r0, r0
    470         l.or    r0, r0, r0
    471         l.or    r0, r0, r0
    472         l.or    r0, r0, r0
    473         l.or    r0, r0, r0
    474         l.or    r0, r0, r0
    475         l.or    r0, r0, r0
    476         l.or    r0, r0, r0
    477         l.or    r0, r0, r0
    478         l.or    r0, r0, r0
    479         l.or    r0, r0, r0
    480         l.or    r0, r0, r0
    481         l.or    r0, r0, r0
    482         l.or    r0, r0, r0
    483         l.or    r0, r0, r0
    484         l.or    r0, r0, r0
    485         l.or    r0, r0, r0
    486         l.or    r0, r0, r0
    487         l.or    r0, r0, r0
    488         l.or    r0, r0, r0
    489         l.or    r0, r0, r0
    490         l.or    r0, r0, r0
    491         l.or    r0, r0, r0
    492         l.or    r0, r0, r0
    493         l.or    r0, r0, r0
    494         l.or    r0, r0, r0
    495         l.or    r0, r0, r0
    496         l.or    r0, r0, r0
    497         l.or    r0, r0, r0
    498         l.or    r0, r0, r0
    499         l.or    r0, r0, r0
    500         l.or    r0, r0, r0
    501         l.or    r0, r0, r0
    502         l.or    r0, r0, r0
    503         l.or    r0, r0, r0
    504         l.or    r0, r0, r0
    505         l.or    r0, r0, r0
    506         l.or    r0, r0, r0
    507         l.or    r0, r0, r0
    508         l.or    r0, r0, r0
    509         l.or    r0, r0, r0
    510         l.or    r0, r0, r0
    511         l.or    r0, r0, r0
    512         l.or    r0, r0, r0
    513         l.or    r0, r0, r0
    514         l.or    r0, r0, r0
    515         l.or    r0, r0, r0
    516         l.or    r0, r0, r0
    517         l.or    r0, r0, r0
    518         l.or    r0, r0, r0
    519         l.or    r0, r0, r0
    520         l.or    r0, r0, r0
    521         l.or    r0, r0, r0
    522         l.or    r0, r0, r0
    523         l.or    r0, r0, r0
    524         l.or    r0, r0, r0
    525         l.or    r0, r0, r0
    526         l.or    r0, r0, r0
    527         l.or    r0, r0, r0
    528         l.or    r0, r0, r0
    529         l.or    r0, r0, r0
    530         l.or    r0, r0, r0
    531         l.or    r0, r0, r0
    532         l.or    r0, r0, r0
    533         l.or    r0, r0, r0
    534         l.or    r0, r0, r0
    535         l.or    r0, r0, r0
    536         l.or    r0, r0, r0
    537         l.or    r0, r0, r0
    538         l.or    r0, r0, r0
    539         l.or    r0, r0, r0
    540         l.or    r0, r0, r0
    541         l.or    r0, r0, r0
    542         l.or    r0, r0, r0
    543         l.or    r0, r0, r0
    544         l.or    r0, r0, r0
    545         l.or    r0, r0, r0
    546         l.or    r0, r0, r0
    547         l.or    r0, r0, r0
    548         l.or    r0, r0, r0
    549         l.or    r0, r0, r0
    550         l.or    r0, r0, r0
    551         l.or    r0, r0, r0
    552         l.or    r0, r0, r0
    553         l.or    r0, r0, r0
    554         l.or    r0, r0, r0
    555         l.or    r0, r0, r0
    556         l.or    r0, r0, r0
    557         l.or    r0, r0, r0
    558         l.or    r0, r0, r0
    559         l.or    r0, r0, r0
    560         l.or    r0, r0, r0
    561         l.or    r0, r0, r0
    562         l.or    r0, r0, r0
    563         l.or    r0, r0, r0
    564         l.or    r0, r0, r0
    565         l.or    r0, r0, r0
    566         l.or    r0, r0, r0
    567         l.or    r0, r0, r0
    568         l.or    r0, r0, r0
    569         l.or    r0, r0, r0
    570         l.or    r0, r0, r0
    571         l.or    r0, r0, r0
    572         l.or    r0, r0, r0
    573         l.or    r0, r0, r0
    574         l.or    r0, r0, r0
    575         l.or    r0, r0, r0
    576         l.or    r0, r0, r0
    577         l.or    r0, r0, r0
    578         l.or    r0, r0, r0
    579         l.or    r0, r0, r0
    580         l.or    r0, r0, r0
    581         l.or    r0, r0, r0
    582         l.or    r0, r0, r0
    583         l.or    r0, r0, r0
    584         l.or    r0, r0, r0
    585         l.or    r0, r0, r0
    586         l.or    r0, r0, r0
    587         l.or    r0, r0, r0
    588         l.or    r0, r0, r0
    589         l.or    r0, r0, r0
    590         l.or    r0, r0, r0
    591         l.or    r0, r0, r0
    592         l.or    r0, r0, r0
    593         l.or    r0, r0, r0
    594         l.or    r0, r0, r0
    595         l.or    r0, r0, r0
    596         l.or    r0, r0, r0
    597         l.or    r0, r0, r0
    598         l.or    r0, r0, r0
    599         l.or    r0, r0, r0
    600         l.or    r0, r0, r0
    601         l.or    r0, r0, r0
    602         l.or    r0, r0, r0
    603         l.or    r0, r0, r0
    604         l.or    r0, r0, r0
    605         l.or    r0, r0, r0
    606         l.or    r0, r0, r0
    607         l.or    r0, r0, r0
    608         l.or    r0, r0, r0
    609         l.or    r0, r0, r0
    610         l.or    r0, r0, r0
    611         l.or    r0, r0, r0
    612         l.or    r0, r0, r0
    613         l.or    r0, r0, r0
    614         l.or    r0, r0, r0
    615         l.or    r0, r0, r0
    616         l.or    r0, r0, r0
    617         l.or    r0, r0, r0
    618         l.or    r0, r0, r0
    619         l.or    r0, r0, r0
    620         l.or    r0, r0, r0
    621         l.or    r0, r0, r0
    622         l.or    r0, r0, r0
    623         l.or    r0, r0, r0
    624         l.or    r0, r0, r0
    625         l.or    r0, r0, r0
    626         l.or    r0, r0, r0
    627         l.or    r0, r0, r0
    628         l.or    r0, r0, r0
    629         l.or    r0, r0, r0
    630         l.or    r0, r0, r0
    631         l.or    r0, r0, r0
    632         l.or    r0, r0, r0
    633         l.or    r0, r0, r0
    634         l.or    r0, r0, r0
    635         l.or    r0, r0, r0
    636         l.or    r0, r0, r0
    637         l.or    r0, r0, r0
    638         l.or    r0, r0, r0
    639         l.or    r0, r0, r0
    640         l.or    r0, r0, r0
    641         l.or    r0, r0, r0
    642         l.or    r0, r0, r0
    643         l.or    r0, r0, r0
    644         l.or    r0, r0, r0
    645         l.or    r0, r0, r0
    646         l.or    r0, r0, r0
    647         l.or    r0, r0, r0
    648         l.or    r0, r0, r0
    649         l.or    r0, r0, r0
    650         l.or    r0, r0, r0
    651         l.or    r0, r0, r0
    652         l.or    r0, r0, r0
    653         l.or    r0, r0, r0
    654         l.or    r0, r0, r0
    655         l.or    r0, r0, r0
    656         l.or    r0, r0, r0
    657         l.or    r0, r0, r0
    658         l.or    r0, r0, r0
    659         l.or    r0, r0, r0
    660         l.or    r0, r0, r0
    661         l.or    r0, r0, r0
    662         l.or    r0, r0, r0
    663         l.or    r0, r0, r0
    664         l.or    r0, r0, r0
    665         l.or    r0, r0, r0
    666         l.or    r0, r0, r0
    667         l.or    r0, r0, r0
    668         l.or    r0, r0, r0
    669         l.or    r0, r0, r0
    670         l.or    r0, r0, r0
    671         l.or    r0, r0, r0
    672         l.or    r0, r0, r0
    673         l.or    r0, r0, r0
    674         l.or    r0, r0, r0
    675         l.or    r0, r0, r0
    676         l.or    r0, r0, r0
    677         l.or    r0, r0, r0
    678         l.or    r0, r0, r0
    679         l.or    r0, r0, r0
    680         l.or    r0, r0, r0
    681         l.or    r0, r0, r0
    682         l.or    r0, r0, r0
    683         l.or    r0, r0, r0
    684         l.or    r0, r0, r0
    685         l.or    r0, r0, r0
    686         l.or    r0, r0, r0
    687         l.or    r0, r0, r0
    688         l.or    r0, r0, r0
    689         l.or    r0, r0, r0
    690         l.or    r0, r0, r0
    691         l.or    r0, r0, r0
    692         l.or    r0, r0, r0
    693         l.or    r0, r0, r0
    694         l.or    r0, r0, r0
    695         l.or    r0, r0, r0
    696         l.or    r0, r0, r0
    697         l.or    r0, r0, r0
    698         l.or    r0, r0, r0
    699         l.or    r0, r0, r0
    700         l.or    r0, r0, r0
    701         l.or    r0, r0, r0
    702         l.or    r0, r0, r0
    703         l.or    r0, r0, r0
    704         l.or    r0, r0, r0
    705         l.or    r0, r0, r0
    706         l.or    r0, r0, r0
    707         l.or    r0, r0, r0
    708         l.or    r0, r0, r0
    709         l.or    r0, r0, r0
    710         l.or    r0, r0, r0
    711         l.or    r0, r0, r0
    712         l.or    r0, r0, r0
    713         l.or    r0, r0, r0
    714         l.or    r0, r0, r0
    715         l.or    r0, r0, r0
    716         l.or    r0, r0, r0
    717         l.or    r0, r0, r0
    718         l.or    r0, r0, r0
    719         l.or    r0, r0, r0
    720         l.or    r0, r0, r0
    721         l.or    r0, r0, r0
    722         l.or    r0, r0, r0
    723         l.or    r0, r0, r0
    724         l.or    r0, r0, r0
    725         l.or    r0, r0, r0
    726         l.or    r0, r0, r0
    727         l.or    r0, r0, r0
    728         l.or    r0, r0, r0
    729         l.or    r0, r0, r0
    730         l.or    r0, r0, r0
    731         l.or    r0, r0, r0
    732         l.or    r0, r0, r0
    733         l.or    r0, r0, r0
    734         l.or    r0, r0, r0
    735         l.or    r0, r0, r0
    736         l.or    r0, r0, r0
    737         l.or    r0, r0, r0
    738         l.or    r0, r0, r0
    739         l.or    r0, r0, r0
    740         l.or    r0, r0, r0
    741         l.or    r0, r0, r0
    742         l.or    r0, r0, r0
    743         l.or    r0, r0, r0
    744         l.or    r0, r0, r0
    745         l.or    r0, r0, r0
    746         l.or    r0, r0, r0
    747         l.or    r0, r0, r0
    748         l.or    r0, r0, r0
    749         l.or    r0, r0, r0
    750         l.or    r0, r0, r0
    751         l.or    r0, r0, r0
    752         l.or    r0, r0, r0
    753         l.or    r0, r0, r0
    754         l.or    r0, r0, r0
    755         l.or    r0, r0, r0
    756         l.or    r0, r0, r0
    757         l.or    r0, r0, r0
    758         l.or    r0, r0, r0
    759         l.or    r0, r0, r0
    760         l.or    r0, r0, r0
    761         l.or    r0, r0, r0
    762         l.or    r0, r0, r0
    763         l.or    r0, r0, r0
    764         l.or    r0, r0, r0
    765         l.or    r0, r0, r0
    766         l.or    r0, r0, r0
    767         l.or    r0, r0, r0
    768         l.or    r0, r0, r0
    769         l.or    r0, r0, r0
    770         l.or    r0, r0, r0
    771         l.or    r0, r0, r0
    772         l.or    r0, r0, r0
    773         l.or    r0, r0, r0
    774         l.or    r0, r0, r0
    775         l.or    r0, r0, r0
    776         l.or    r0, r0, r0
    777         l.or    r0, r0, r0
    778         l.or    r0, r0, r0
    779         l.or    r0, r0, r0
    780         l.or    r0, r0, r0
    781         l.or    r0, r0, r0
    782         l.or    r0, r0, r0
    783         l.or    r0, r0, r0
    784         l.or    r0, r0, r0
    785         l.or    r0, r0, r0
    786         l.or    r0, r0, r0
    787         l.or    r0, r0, r0
    788         l.or    r0, r0, r0
    789         l.or    r0, r0, r0
    790         l.or    r0, r0, r0
    791         l.or    r0, r0, r0
    792         l.or    r0, r0, r0
    793         l.or    r0, r0, r0
    794         l.or    r0, r0, r0
    795         l.or    r0, r0, r0
    796         l.or    r0, r0, r0
    797         l.or    r0, r0, r0
    798         l.or    r0, r0, r0
    799         l.or    r0, r0, r0
    800         l.or    r0, r0, r0
    801         l.or    r0, r0, r0
    802         l.or    r0, r0, r0
    803         l.or    r0, r0, r0
    804         l.or    r0, r0, r0
    805         l.or    r0, r0, r0
    806         l.or    r0, r0, r0
    807         l.or    r0, r0, r0
    808         l.or    r0, r0, r0
    809         l.or    r0, r0, r0
    810         l.or    r0, r0, r0
    811         l.or    r0, r0, r0
    812         l.or    r0, r0, r0
    813         l.or    r0, r0, r0
    814         l.or    r0, r0, r0
    815         l.or    r0, r0, r0
    816         l.or    r0, r0, r0
    817         l.or    r0, r0, r0
    818         l.or    r0, r0, r0
    819         l.or    r0, r0, r0
    820         l.or    r0, r0, r0
    821         l.or    r0, r0, r0
    822         l.or    r0, r0, r0
    823         l.or    r0, r0, r0
    824         l.or    r0, r0, r0
    825         l.or    r0, r0, r0
    826         l.or    r0, r0, r0
    827         l.or    r0, r0, r0
    828         l.or    r0, r0, r0
    829         l.or    r0, r0, r0
    830         l.or    r0, r0, r0
    831         l.or    r0, r0, r0
    832         l.or    r0, r0, r0
    833         l.or    r0, r0, r0
    834         l.or    r0, r0, r0
    835         l.or    r0, r0, r0
    836         l.or    r0, r0, r0
    837         l.or    r0, r0, r0
    838         l.or    r0, r0, r0
    839         l.or    r0, r0, r0
    840         l.or    r0, r0, r0
    841         l.or    r0, r0, r0
    842         l.or    r0, r0, r0
    843         l.or    r0, r0, r0
    844         l.or    r0, r0, r0
    845         l.or    r0, r0, r0
    846         l.or    r0, r0, r0
    847         l.or    r0, r0, r0
    848         l.or    r0, r0, r0
    849         l.or    r0, r0, r0
    850         l.or    r0, r0, r0
    851         l.or    r0, r0, r0
    852         l.or    r0, r0, r0
    853         l.or    r0, r0, r0
    854         l.or    r0, r0, r0
    855         l.or    r0, r0, r0
    856         l.or    r0, r0, r0
    857         l.or    r0, r0, r0
    858         l.or    r0, r0, r0
    859         l.or    r0, r0, r0
    860         l.or    r0, r0, r0
    861         l.or    r0, r0, r0
    862         l.or    r0, r0, r0
    863         l.or    r0, r0, r0
    864         l.or    r0, r0, r0
    865         l.or    r0, r0, r0
    866         l.or    r0, r0, r0
    867         l.or    r0, r0, r0
    868         l.or    r0, r0, r0
    869         l.or    r0, r0, r0
    870         l.or    r0, r0, r0
    871         l.or    r0, r0, r0
    872         l.or    r0, r0, r0
    873         l.or    r0, r0, r0
    874         l.or    r0, r0, r0
    875         l.or    r0, r0, r0
    876         l.or    r0, r0, r0
    877         l.or    r0, r0, r0
    878         l.or    r0, r0, r0
    879         l.or    r0, r0, r0
    880         l.or    r0, r0, r0
    881         l.or    r0, r0, r0
    882         l.or    r0, r0, r0
    883         l.or    r0, r0, r0
    884         l.or    r0, r0, r0
    885         l.or    r0, r0, r0
    886         l.or    r0, r0, r0
    887         l.or    r0, r0, r0
    888         l.or    r0, r0, r0
    889         l.or    r0, r0, r0
    890         l.or    r0, r0, r0
    891         l.or    r0, r0, r0
    892         l.or    r0, r0, r0
    893         l.or    r0, r0, r0
    894         l.or    r0, r0, r0
    895         l.or    r0, r0, r0
    896         l.or    r0, r0, r0
    897         l.or    r0, r0, r0
    898         l.or    r0, r0, r0
    899         l.or    r0, r0, r0
    900         l.or    r0, r0, r0
    901         l.or    r0, r0, r0
    902         l.or    r0, r0, r0
    903         l.or    r0, r0, r0
    904         l.or    r0, r0, r0
    905         l.or    r0, r0, r0
    906         l.or    r0, r0, r0
    907         l.or    r0, r0, r0
    908         l.or    r0, r0, r0
    909         l.or    r0, r0, r0
    910         l.or    r0, r0, r0
    911         l.or    r0, r0, r0
    912         l.or    r0, r0, r0
    913         l.or    r0, r0, r0
    914         l.or    r0, r0, r0
    915         l.or    r0, r0, r0
    916         l.or    r0, r0, r0
    917         l.or    r0, r0, r0
    918         l.or    r0, r0, r0
    919         l.or    r0, r0, r0
    920         l.or    r0, r0, r0
    921         l.or    r0, r0, r0
    922         l.or    r0, r0, r0
    923         l.or    r0, r0, r0
    924         l.or    r0, r0, r0
    925         l.or    r0, r0, r0
    926         l.or    r0, r0, r0
    927         l.or    r0, r0, r0
    928         l.or    r0, r0, r0
    929         l.or    r0, r0, r0
    930         l.or    r0, r0, r0
    931         l.or    r0, r0, r0
    932         l.or    r0, r0, r0
    933         l.or    r0, r0, r0
    934         l.or    r0, r0, r0
    935         l.or    r0, r0, r0
    936         l.or    r0, r0, r0
    937         l.or    r0, r0, r0
    938         l.or    r0, r0, r0
    939         l.or    r0, r0, r0
    940         l.or    r0, r0, r0
    941         l.or    r0, r0, r0
    942         l.or    r0, r0, r0
    943         l.or    r0, r0, r0
    944         l.or    r0, r0, r0
    945         l.or    r0, r0, r0
    946         l.or    r0, r0, r0
    947         l.or    r0, r0, r0
    948         l.or    r0, r0, r0
    949         l.or    r0, r0, r0
    950         l.or    r0, r0, r0
    951         l.or    r0, r0, r0
    952         l.or    r0, r0, r0
    953         l.or    r0, r0, r0
    954         l.or    r0, r0, r0
    955         l.or    r0, r0, r0
    956         l.or    r0, r0, r0
    957         l.or    r0, r0, r0
    958         l.or    r0, r0, r0
    959         l.or    r0, r0, r0
    960         l.or    r0, r0, r0
    961         l.or    r0, r0, r0
    962         l.or    r0, r0, r0
    963         l.or    r0, r0, r0
    964         l.or    r0, r0, r0
    965         l.or    r0, r0, r0
    966         l.or    r0, r0, r0
    967         l.or    r0, r0, r0
    968         l.or    r0, r0, r0
    969         l.or    r0, r0, r0
    970         l.or    r0, r0, r0
    971         l.or    r0, r0, r0
    972         l.or    r0, r0, r0
    973         l.or    r0, r0, r0
    974         l.or    r0, r0, r0
    975         l.or    r0, r0, r0
    976         l.or    r0, r0, r0
    977         l.or    r0, r0, r0
    978         l.or    r0, r0, r0
    979         l.or    r0, r0, r0
    980         l.or    r0, r0, r0
    981         l.or    r0, r0, r0
    982         l.or    r0, r0, r0
    983         l.or    r0, r0, r0
    984         l.or    r0, r0, r0
    985         l.or    r0, r0, r0
    986         l.or    r0, r0, r0
    987         l.or    r0, r0, r0
    988         l.or    r0, r0, r0
    989         l.or    r0, r0, r0
    990         l.or    r0, r0, r0
    991         l.or    r0, r0, r0
    992         l.or    r0, r0, r0
    993         l.or    r0, r0, r0
    994         l.or    r0, r0, r0
    995         l.or    r0, r0, r0
    996         l.or    r0, r0, r0
    997         l.or    r0, r0, r0
    998         l.or    r0, r0, r0
    999         l.or    r0, r0, r0
    1000         l.or    r0, r0, r0
    1001         l.or    r0, r0, r0
    1002         l.or    r0, r0, r0
    1003         l.or    r0, r0, r0
    1004         l.or    r0, r0, r0
    1005         l.or    r0, r0, r0
    1006         l.or    r0, r0, r0
    1007         l.or    r0, r0, r0
    1008         l.or    r0, r0, r0
    1009         l.or    r0, r0, r0
    1010         l.or    r0, r0, r0
    1011         l.or    r0, r0, r0
    1012         l.or    r0, r0, r0
    1013         l.or    r0, r0, r0
    1014         l.or    r0, r0, r0
    1015         l.or    r0, r0, r0
    1016         l.or    r0, r0, r0
    1017         l.or    r0, r0, r0
    1018         l.or    r0, r0, r0
    1019         l.or    r0, r0, r0
    1020         l.or    r0, r0, r0
    1021         l.or    r0, r0, r0
    1022         l.or    r0, r0, r0
    1023         l.or    r0, r0, r0
    1024         l.or    r0, r0, r0
    1025         l.or    r0, r0, r0
    1026         l.or    r0, r0, r0
    1027         l.or    r0, r0, r0
    1028         l.or    r0, r0, r0
    1029         l.or    r0, r0, r0
    1030         l.or    r0, r0, r0
    1031         l.or    r0, r0, r0
    1032         l.or    r0, r0, r0
    1033         l.or    r0, r0, r0
    1034         l.or    r0, r0, r0
    1035         l.or    r0, r0, r0
    1036         l.or    r0, r0, r0
    1037         l.or    r0, r0, r0
    1038         l.or    r0, r0, r0
    1039         l.or    r0, r0, r0
    1040         l.or    r0, r0, r0
    1041         l.or    r0, r0, r0
    1042         l.or    r0, r0, r0
    1043         l.or    r0, r0, r0
    1044         l.or    r0, r0, r0
    1045         l.or    r0, r0, r0
    1046         l.or    r0, r0, r0
    1047         l.or    r0, r0, r0
    1048         l.or    r0, r0, r0
    1049         l.or    r0, r0, r0
    1050         l.or    r0, r0, r0
    1051         l.or    r0, r0, r0
    1052         l.or    r0, r0, r0
    1053         l.or    r0, r0, r0
    1054         l.or    r0, r0, r0
    1055         l.or    r0, r0, r0
    1056         l.or    r0, r0, r0
    1057         l.or    r0, r0, r0
    1058         l.or    r0, r0, r0
    1059         l.or    r0, r0, r0
    1060         l.or    r0, r0, r0
    1061         l.or    r0, r0, r0
    1062         l.or    r0, r0, r0
    1063         l.or    r0, r0, r0
    1064         l.or    r0, r0, r0
    1065         l.or    r0, r0, r0
     45
     46        l.or    r0, r0, r0
     47        l.or    r0, r0, r0
     48        l.or    r0, r0, r0
     49        l.or    r0, r0, r0
     50        l.or    r0, r0, r0
     51        l.or    r0, r0, r0
     52        l.or    r0, r0, r0
     53        l.or    r0, r0, r0
     54        l.or    r0, r0, r0
     55        l.or    r0, r0, r0
     56        l.or    r0, r0, r0
     57        l.or    r0, r0, r0
     58        l.or    r0, r0, r0
     59        l.or    r0, r0, r0
     60        l.or    r0, r0, r0
     61        l.or    r0, r0, r0
     62        l.or    r0, r0, r0
     63        l.or    r0, r0, r0
     64        l.or    r0, r0, r0
     65        l.or    r0, r0, r0
     66        l.or    r0, r0, r0
     67        l.or    r0, r0, r0
     68        l.or    r0, r0, r0
     69        l.or    r0, r0, r0
     70        l.or    r0, r0, r0
     71        l.or    r0, r0, r0
     72        l.or    r0, r0, r0
     73        l.or    r0, r0, r0
     74        l.or    r0, r0, r0
     75        l.or    r0, r0, r0
     76        l.or    r0, r0, r0
     77        l.or    r0, r0, r0
     78        l.or    r0, r0, r0
     79        l.or    r0, r0, r0
     80        l.or    r0, r0, r0
     81        l.or    r0, r0, r0
     82        l.or    r0, r0, r0
     83        l.or    r0, r0, r0
     84        l.or    r0, r0, r0
     85        l.or    r0, r0, r0
     86        l.or    r0, r0, r0
     87        l.or    r0, r0, r0
     88        l.or    r0, r0, r0
     89        l.or    r0, r0, r0
     90        l.or    r0, r0, r0
     91        l.or    r0, r0, r0
     92        l.or    r0, r0, r0
     93        l.or    r0, r0, r0
     94        l.or    r0, r0, r0
     95        l.or    r0, r0, r0
     96        l.or    r0, r0, r0
     97        l.or    r0, r0, r0
     98        l.or    r0, r0, r0
     99        l.or    r0, r0, r0
     100        l.or    r0, r0, r0
     101        l.or    r0, r0, r0
     102        l.or    r0, r0, r0
     103        l.or    r0, r0, r0
     104        l.or    r0, r0, r0
     105        l.or    r0, r0, r0
     106        l.or    r0, r0, r0
     107        l.or    r0, r0, r0
     108        l.or    r0, r0, r0
     109        l.or    r0, r0, r0
     110        l.or    r0, r0, r0
     111        l.or    r0, r0, r0
     112        l.or    r0, r0, r0
     113        l.or    r0, r0, r0
     114        l.or    r0, r0, r0
     115        l.or    r0, r0, r0
     116        l.or    r0, r0, r0
     117        l.or    r0, r0, r0
     118        l.or    r0, r0, r0
     119        l.or    r0, r0, r0
     120        l.or    r0, r0, r0
     121        l.or    r0, r0, r0
     122        l.or    r0, r0, r0
     123        l.or    r0, r0, r0
     124        l.or    r0, r0, r0
     125        l.or    r0, r0, r0
     126        l.or    r0, r0, r0
     127        l.or    r0, r0, r0
     128        l.or    r0, r0, r0
     129        l.or    r0, r0, r0
     130        l.or    r0, r0, r0
     131        l.or    r0, r0, r0
     132        l.or    r0, r0, r0
     133        l.or    r0, r0, r0
     134        l.or    r0, r0, r0
     135        l.or    r0, r0, r0
     136        l.or    r0, r0, r0
     137        l.or    r0, r0, r0
     138        l.or    r0, r0, r0
     139        l.or    r0, r0, r0
     140        l.or    r0, r0, r0
     141        l.or    r0, r0, r0
     142        l.or    r0, r0, r0
     143        l.or    r0, r0, r0
     144        l.or    r0, r0, r0
     145        l.or    r0, r0, r0
     146        l.or    r0, r0, r0
     147        l.or    r0, r0, r0
     148        l.or    r0, r0, r0
     149        l.or    r0, r0, r0
     150        l.or    r0, r0, r0
     151        l.or    r0, r0, r0
     152        l.or    r0, r0, r0
     153        l.or    r0, r0, r0
     154        l.or    r0, r0, r0
     155        l.or    r0, r0, r0
     156        l.or    r0, r0, r0
     157        l.or    r0, r0, r0
     158        l.or    r0, r0, r0
     159        l.or    r0, r0, r0
     160        l.or    r0, r0, r0
     161        l.or    r0, r0, r0
     162        l.or    r0, r0, r0
     163        l.or    r0, r0, r0
     164        l.or    r0, r0, r0
     165        l.or    r0, r0, r0
     166        l.or    r0, r0, r0
     167        l.or    r0, r0, r0
     168        l.or    r0, r0, r0
     169        l.or    r0, r0, r0
     170        l.or    r0, r0, r0
     171        l.or    r0, r0, r0
     172        l.or    r0, r0, r0
     173        l.or    r0, r0, r0
     174        l.or    r0, r0, r0
     175        l.or    r0, r0, r0
     176        l.or    r0, r0, r0
     177        l.or    r0, r0, r0
     178        l.or    r0, r0, r0
     179        l.or    r0, r0, r0
     180        l.or    r0, r0, r0
     181        l.or    r0, r0, r0
     182        l.or    r0, r0, r0
     183        l.or    r0, r0, r0
     184        l.or    r0, r0, r0
     185        l.or    r0, r0, r0
     186        l.or    r0, r0, r0
     187        l.or    r0, r0, r0
     188        l.or    r0, r0, r0
     189        l.or    r0, r0, r0
     190        l.or    r0, r0, r0
     191        l.or    r0, r0, r0
     192        l.or    r0, r0, r0
     193        l.or    r0, r0, r0
     194        l.or    r0, r0, r0
     195        l.or    r0, r0, r0
     196        l.or    r0, r0, r0
     197        l.or    r0, r0, r0
     198        l.or    r0, r0, r0
     199        l.or    r0, r0, r0
     200        l.or    r0, r0, r0
     201        l.or    r0, r0, r0
     202        l.or    r0, r0, r0
     203        l.or    r0, r0, r0
     204        l.or    r0, r0, r0
     205        l.or    r0, r0, r0
     206        l.or    r0, r0, r0
     207        l.or    r0, r0, r0
     208        l.or    r0, r0, r0
     209        l.or    r0, r0, r0
     210        l.or    r0, r0, r0
     211        l.or    r0, r0, r0
     212        l.or    r0, r0, r0
     213        l.or    r0, r0, r0
     214        l.or    r0, r0, r0
     215        l.or    r0, r0, r0
     216        l.or    r0, r0, r0
     217        l.or    r0, r0, r0
     218        l.or    r0, r0, r0
     219        l.or    r0, r0, r0
     220        l.or    r0, r0, r0
     221        l.or    r0, r0, r0
     222        l.or    r0, r0, r0
     223        l.or    r0, r0, r0
     224        l.or    r0, r0, r0
     225        l.or    r0, r0, r0
     226        l.or    r0, r0, r0
     227        l.or    r0, r0, r0
     228        l.or    r0, r0, r0
     229        l.or    r0, r0, r0
     230        l.or    r0, r0, r0
     231        l.or    r0, r0, r0
     232        l.or    r0, r0, r0
     233        l.or    r0, r0, r0
     234        l.or    r0, r0, r0
     235        l.or    r0, r0, r0
     236        l.or    r0, r0, r0
     237        l.or    r0, r0, r0
     238        l.or    r0, r0, r0
     239        l.or    r0, r0, r0
     240        l.or    r0, r0, r0
     241        l.or    r0, r0, r0
     242        l.or    r0, r0, r0
     243        l.or    r0, r0, r0
     244        l.or    r0, r0, r0
     245        l.or    r0, r0, r0
     246        l.or    r0, r0, r0
     247        l.or    r0, r0, r0
     248        l.or    r0, r0, r0
     249        l.or    r0, r0, r0
     250        l.or    r0, r0, r0
     251        l.or    r0, r0, r0
     252        l.or    r0, r0, r0
     253        l.or    r0, r0, r0
     254        l.or    r0, r0, r0
     255        l.or    r0, r0, r0
     256        l.or    r0, r0, r0
     257        l.or    r0, r0, r0
     258        l.or    r0, r0, r0
     259        l.or    r0, r0, r0
     260        l.or    r0, r0, r0
     261        l.or    r0, r0, r0
     262        l.or    r0, r0, r0
     263        l.or    r0, r0, r0
     264        l.or    r0, r0, r0
     265        l.or    r0, r0, r0
     266        l.or    r0, r0, r0
     267        l.or    r0, r0, r0
     268        l.or    r0, r0, r0
     269        l.or    r0, r0, r0
     270        l.or    r0, r0, r0
     271        l.or    r0, r0, r0
     272        l.or    r0, r0, r0
     273        l.or    r0, r0, r0
     274        l.or    r0, r0, r0
     275        l.or    r0, r0, r0
     276        l.or    r0, r0, r0
     277        l.or    r0, r0, r0
     278        l.or    r0, r0, r0
     279        l.or    r0, r0, r0
     280        l.or    r0, r0, r0
     281        l.or    r0, r0, r0
     282        l.or    r0, r0, r0
     283        l.or    r0, r0, r0
     284        l.or    r0, r0, r0
     285        l.or    r0, r0, r0
     286        l.or    r0, r0, r0
     287        l.or    r0, r0, r0
     288        l.or    r0, r0, r0
     289        l.or    r0, r0, r0
     290        l.or    r0, r0, r0
     291        l.or    r0, r0, r0
     292        l.or    r0, r0, r0
     293        l.or    r0, r0, r0
     294        l.or    r0, r0, r0
     295        l.or    r0, r0, r0
     296        l.or    r0, r0, r0
     297        l.or    r0, r0, r0
     298        l.or    r0, r0, r0
     299        l.or    r0, r0, r0
     300        l.or    r0, r0, r0
     301        l.or    r0, r0, r0
     302        l.or    r0, r0, r0
     303        l.or    r0, r0, r0
     304        l.or    r0, r0, r0
     305        l.or    r0, r0, r0
     306        l.or    r0, r0, r0
     307        l.or    r0, r0, r0
     308        l.or    r0, r0, r0
     309        l.or    r0, r0, r0
     310        l.or    r0, r0, r0
     311        l.or    r0, r0, r0
     312        l.or    r0, r0, r0
     313        l.or    r0, r0, r0
     314        l.or    r0, r0, r0
     315        l.or    r0, r0, r0
     316        l.or    r0, r0, r0
     317        l.or    r0, r0, r0
     318        l.or    r0, r0, r0
     319        l.or    r0, r0, r0
     320        l.or    r0, r0, r0
     321        l.or    r0, r0, r0
     322        l.or    r0, r0, r0
     323        l.or    r0, r0, r0
     324        l.or    r0, r0, r0
     325        l.or    r0, r0, r0
     326        l.or    r0, r0, r0
     327        l.or    r0, r0, r0
     328        l.or    r0, r0, r0
     329        l.or    r0, r0, r0
     330        l.or    r0, r0, r0
     331        l.or    r0, r0, r0
     332        l.or    r0, r0, r0
     333        l.or    r0, r0, r0
     334        l.or    r0, r0, r0
     335        l.or    r0, r0, r0
     336        l.or    r0, r0, r0
     337        l.or    r0, r0, r0
     338        l.or    r0, r0, r0
     339        l.or    r0, r0, r0
     340        l.or    r0, r0, r0
     341        l.or    r0, r0, r0
     342        l.or    r0, r0, r0
     343        l.or    r0, r0, r0
     344        l.or    r0, r0, r0
     345        l.or    r0, r0, r0
     346        l.or    r0, r0, r0
     347        l.or    r0, r0, r0
     348        l.or    r0, r0, r0
     349        l.or    r0, r0, r0
     350        l.or    r0, r0, r0
     351        l.or    r0, r0, r0
     352        l.or    r0, r0, r0
     353        l.or    r0, r0, r0
     354        l.or    r0, r0, r0
     355        l.or    r0, r0, r0
     356        l.or    r0, r0, r0
     357        l.or    r0, r0, r0
     358        l.or    r0, r0, r0
     359        l.or    r0, r0, r0
     360        l.or    r0, r0, r0
     361        l.or    r0, r0, r0
     362        l.or    r0, r0, r0
     363        l.or    r0, r0, r0
     364        l.or    r0, r0, r0
     365        l.or    r0, r0, r0
     366        l.or    r0, r0, r0
     367        l.or    r0, r0, r0
     368        l.or    r0, r0, r0
     369        l.or    r0, r0, r0
     370        l.or    r0, r0, r0
     371        l.or    r0, r0, r0
     372        l.or    r0, r0, r0
     373        l.or    r0, r0, r0
     374        l.or    r0, r0, r0
     375        l.or    r0, r0, r0
     376        l.or    r0, r0, r0
     377        l.or    r0, r0, r0
     378        l.or    r0, r0, r0
     379        l.or    r0, r0, r0
     380        l.or    r0, r0, r0
     381        l.or    r0, r0, r0
     382        l.or    r0, r0, r0
     383        l.or    r0, r0, r0
     384        l.or    r0, r0, r0
     385        l.or    r0, r0, r0
     386        l.or    r0, r0, r0
     387        l.or    r0, r0, r0
     388        l.or    r0, r0, r0
     389        l.or    r0, r0, r0
     390        l.or    r0, r0, r0
     391        l.or    r0, r0, r0
     392        l.or    r0, r0, r0
     393        l.or    r0, r0, r0
     394        l.or    r0, r0, r0
     395        l.or    r0, r0, r0
     396        l.or    r0, r0, r0
     397        l.or    r0, r0, r0
     398        l.or    r0, r0, r0
     399        l.or    r0, r0, r0
     400        l.or    r0, r0, r0
     401        l.or    r0, r0, r0
     402        l.or    r0, r0, r0
     403        l.or    r0, r0, r0
     404        l.or    r0, r0, r0
     405        l.or    r0, r0, r0
     406        l.or    r0, r0, r0
     407        l.or    r0, r0, r0
     408        l.or    r0, r0, r0
     409        l.or    r0, r0, r0
     410        l.or    r0, r0, r0
     411        l.or    r0, r0, r0
     412        l.or    r0, r0, r0
     413        l.or    r0, r0, r0
     414        l.or    r0, r0, r0
     415        l.or    r0, r0, r0
     416        l.or    r0, r0, r0
     417        l.or    r0, r0, r0
     418        l.or    r0, r0, r0
     419        l.or    r0, r0, r0
     420        l.or    r0, r0, r0
     421        l.or    r0, r0, r0
     422        l.or    r0, r0, r0
     423        l.or    r0, r0, r0
     424        l.or    r0, r0, r0
     425        l.or    r0, r0, r0
     426        l.or    r0, r0, r0
     427        l.or    r0, r0, r0
     428        l.or    r0, r0, r0
     429        l.or    r0, r0, r0
     430        l.or    r0, r0, r0
     431        l.or    r0, r0, r0
     432        l.or    r0, r0, r0
     433        l.or    r0, r0, r0
     434        l.or    r0, r0, r0
     435        l.or    r0, r0, r0
     436        l.or    r0, r0, r0
     437        l.or    r0, r0, r0
     438        l.or    r0, r0, r0
     439        l.or    r0, r0, r0
     440        l.or    r0, r0, r0
     441        l.or    r0, r0, r0
     442        l.or    r0, r0, r0
     443        l.or    r0, r0, r0
     444        l.or    r0, r0, r0
     445        l.or    r0, r0, r0
     446        l.or    r0, r0, r0
     447        l.or    r0, r0, r0
     448        l.or    r0, r0, r0
     449        l.or    r0, r0, r0
     450        l.or    r0, r0, r0
     451        l.or    r0, r0, r0
     452        l.or    r0, r0, r0
     453        l.or    r0, r0, r0
     454        l.or    r0, r0, r0
     455        l.or    r0, r0, r0
     456        l.or    r0, r0, r0
     457        l.or    r0, r0, r0
     458        l.or    r0, r0, r0
     459        l.or    r0, r0, r0
     460        l.or    r0, r0, r0
     461        l.or    r0, r0, r0
     462        l.or    r0, r0, r0
     463        l.or    r0, r0, r0
     464        l.or    r0, r0, r0
     465        l.or    r0, r0, r0
     466        l.or    r0, r0, r0
     467        l.or    r0, r0, r0
     468        l.or    r0, r0, r0
     469        l.or    r0, r0, r0
     470        l.or    r0, r0, r0
     471        l.or    r0, r0, r0
     472        l.or    r0, r0, r0
     473        l.or    r0, r0, r0
     474        l.or    r0, r0, r0
     475        l.or    r0, r0, r0
     476        l.or    r0, r0, r0
     477        l.or    r0, r0, r0
     478        l.or    r0, r0, r0
     479        l.or    r0, r0, r0
     480        l.or    r0, r0, r0
     481        l.or    r0, r0, r0
     482        l.or    r0, r0, r0
     483        l.or    r0, r0, r0
     484        l.or    r0, r0, r0
     485        l.or    r0, r0, r0
     486        l.or    r0, r0, r0
     487        l.or    r0, r0, r0
     488        l.or    r0, r0, r0
     489        l.or    r0, r0, r0
     490        l.or    r0, r0, r0
     491        l.or    r0, r0, r0
     492        l.or    r0, r0, r0
     493        l.or    r0, r0, r0
     494        l.or    r0, r0, r0
     495        l.or    r0, r0, r0
     496        l.or    r0, r0, r0
     497        l.or    r0, r0, r0
     498        l.or    r0, r0, r0
     499        l.or    r0, r0, r0
     500        l.or    r0, r0, r0
     501        l.or    r0, r0, r0
     502        l.or    r0, r0, r0
     503        l.or    r0, r0, r0
     504        l.or    r0, r0, r0
     505        l.or    r0, r0, r0
     506        l.or    r0, r0, r0
     507        l.or    r0, r0, r0
     508        l.or    r0, r0, r0
     509        l.or    r0, r0, r0
     510        l.or    r0, r0, r0
     511        l.or    r0, r0, r0
     512        l.or    r0, r0, r0
     513        l.or    r0, r0, r0
     514        l.or    r0, r0, r0
     515        l.or    r0, r0, r0
     516        l.or    r0, r0, r0
     517        l.or    r0, r0, r0
     518        l.or    r0, r0, r0
     519        l.or    r0, r0, r0
     520        l.or    r0, r0, r0
     521        l.or    r0, r0, r0
     522        l.or    r0, r0, r0
     523        l.or    r0, r0, r0
     524        l.or    r0, r0, r0
     525        l.or    r0, r0, r0
     526        l.or    r0, r0, r0
     527        l.or    r0, r0, r0
     528        l.or    r0, r0, r0
     529        l.or    r0, r0, r0
     530        l.or    r0, r0, r0
     531        l.or    r0, r0, r0
     532        l.or    r0, r0, r0
     533        l.or    r0, r0, r0
     534        l.or    r0, r0, r0
     535        l.or    r0, r0, r0
     536        l.or    r0, r0, r0
     537        l.or    r0, r0, r0
     538        l.or    r0, r0, r0
     539        l.or    r0, r0, r0
     540        l.or    r0, r0, r0
     541        l.or    r0, r0, r0
     542        l.or    r0, r0, r0
     543        l.or    r0, r0, r0
     544        l.or    r0, r0, r0
     545        l.or    r0, r0, r0
     546        l.or    r0, r0, r0
     547        l.or    r0, r0, r0
     548        l.or    r0, r0, r0
     549        l.or    r0, r0, r0
     550        l.or    r0, r0, r0
     551        l.or    r0, r0, r0
     552        l.or    r0, r0, r0
     553        l.or    r0, r0, r0
     554        l.or    r0, r0, r0
     555        l.or    r0, r0, r0
     556        l.or    r0, r0, r0
     557        l.or    r0, r0, r0
     558        l.or    r0, r0, r0
     559        l.or    r0, r0, r0
     560        l.or    r0, r0, r0
     561        l.or    r0, r0, r0
     562        l.or    r0, r0, r0
     563        l.or    r0, r0, r0
     564        l.or    r0, r0, r0
     565        l.or    r0, r0, r0
     566        l.or    r0, r0, r0
     567        l.or    r0, r0, r0
     568        l.or    r0, r0, r0
     569        l.or    r0, r0, r0
     570        l.or    r0, r0, r0
     571        l.or    r0, r0, r0
     572        l.or    r0, r0, r0
     573        l.or    r0, r0, r0
     574        l.or    r0, r0, r0
     575        l.or    r0, r0, r0
     576        l.or    r0, r0, r0
     577        l.or    r0, r0, r0
     578        l.or    r0, r0, r0
     579        l.or    r0, r0, r0
     580        l.or    r0, r0, r0
     581        l.or    r0, r0, r0
     582        l.or    r0, r0, r0
     583        l.or    r0, r0, r0
     584        l.or    r0, r0, r0
     585        l.or    r0, r0, r0
     586        l.or    r0, r0, r0
     587        l.or    r0, r0, r0
     588        l.or    r0, r0, r0
     589        l.or    r0, r0, r0
     590        l.or    r0, r0, r0
     591        l.or    r0, r0, r0
     592        l.or    r0, r0, r0
     593        l.or    r0, r0, r0
     594        l.or    r0, r0, r0
     595        l.or    r0, r0, r0
     596        l.or    r0, r0, r0
     597        l.or    r0, r0, r0
     598        l.or    r0, r0, r0
     599        l.or    r0, r0, r0
     600        l.or    r0, r0, r0
     601        l.or    r0, r0, r0
     602        l.or    r0, r0, r0
     603        l.or    r0, r0, r0
     604        l.or    r0, r0, r0
     605        l.or    r0, r0, r0
     606        l.or    r0, r0, r0
     607        l.or    r0, r0, r0
     608        l.or    r0, r0, r0
     609        l.or    r0, r0, r0
     610        l.or    r0, r0, r0
     611        l.or    r0, r0, r0
     612        l.or    r0, r0, r0
     613        l.or    r0, r0, r0
     614        l.or    r0, r0, r0
     615        l.or    r0, r0, r0
     616        l.or    r0, r0, r0
     617        l.or    r0, r0, r0
     618        l.or    r0, r0, r0
     619        l.or    r0, r0, r0
     620        l.or    r0, r0, r0
     621        l.or    r0, r0, r0
     622        l.or    r0, r0, r0
     623        l.or    r0, r0, r0
     624        l.or    r0, r0, r0
     625        l.or    r0, r0, r0
     626        l.or    r0, r0, r0
     627        l.or    r0, r0, r0
     628        l.or    r0, r0, r0
     629        l.or    r0, r0, r0
     630        l.or    r0, r0, r0
     631        l.or    r0, r0, r0
     632        l.or    r0, r0, r0
     633        l.or    r0, r0, r0
     634        l.or    r0, r0, r0
     635        l.or    r0, r0, r0
     636        l.or    r0, r0, r0
     637        l.or    r0, r0, r0
     638        l.or    r0, r0, r0
     639        l.or    r0, r0, r0
     640        l.or    r0, r0, r0
     641        l.or    r0, r0, r0
     642        l.or    r0, r0, r0
     643        l.or    r0, r0, r0
     644        l.or    r0, r0, r0
     645        l.or    r0, r0, r0
     646        l.or    r0, r0, r0
     647        l.or    r0, r0, r0
     648        l.or    r0, r0, r0
     649        l.or    r0, r0, r0
     650        l.or    r0, r0, r0
     651        l.or    r0, r0, r0
     652        l.or    r0, r0, r0
     653        l.or    r0, r0, r0
     654        l.or    r0, r0, r0
     655        l.or    r0, r0, r0
     656        l.or    r0, r0, r0
     657        l.or    r0, r0, r0
     658        l.or    r0, r0, r0
     659        l.or    r0, r0, r0
     660        l.or    r0, r0, r0
     661        l.or    r0, r0, r0
     662        l.or    r0, r0, r0
     663        l.or    r0, r0, r0
     664        l.or    r0, r0, r0
     665        l.or    r0, r0, r0
     666        l.or    r0, r0, r0
     667        l.or    r0, r0, r0
     668        l.or    r0, r0, r0
     669        l.or    r0, r0, r0
     670        l.or    r0, r0, r0
     671        l.or    r0, r0, r0
     672        l.or    r0, r0, r0
     673        l.or    r0, r0, r0
     674        l.or    r0, r0, r0
     675        l.or    r0, r0, r0
     676        l.or    r0, r0, r0
     677        l.or    r0, r0, r0
     678        l.or    r0, r0, r0
     679        l.or    r0, r0, r0
     680        l.or    r0, r0, r0
     681        l.or    r0, r0, r0
     682        l.or    r0, r0, r0
     683        l.or    r0, r0, r0
     684        l.or    r0, r0, r0
     685        l.or    r0, r0, r0
     686        l.or    r0, r0, r0
     687        l.or    r0, r0, r0
     688        l.or    r0, r0, r0
     689        l.or    r0, r0, r0
     690        l.or    r0, r0, r0
     691        l.or    r0, r0, r0
     692        l.or    r0, r0, r0
     693        l.or    r0, r0, r0
     694        l.or    r0, r0, r0
     695        l.or    r0, r0, r0
     696        l.or    r0, r0, r0
     697        l.or    r0, r0, r0
     698        l.or    r0, r0, r0
     699        l.or    r0, r0, r0
     700        l.or    r0, r0, r0
     701        l.or    r0, r0, r0
     702        l.or    r0, r0, r0
     703        l.or    r0, r0, r0
     704        l.or    r0, r0, r0
     705        l.or    r0, r0, r0
     706        l.or    r0, r0, r0
     707        l.or    r0, r0, r0
     708        l.or    r0, r0, r0
     709        l.or    r0, r0, r0
     710        l.or    r0, r0, r0
     711        l.or    r0, r0, r0
     712        l.or    r0, r0, r0
     713        l.or    r0, r0, r0
     714        l.or    r0, r0, r0
     715        l.or    r0, r0, r0
     716        l.or    r0, r0, r0
     717        l.or    r0, r0, r0
     718        l.or    r0, r0, r0
     719        l.or    r0, r0, r0
     720        l.or    r0, r0, r0
     721        l.or    r0, r0, r0
     722        l.or    r0, r0, r0
     723        l.or    r0, r0, r0
     724        l.or    r0, r0, r0
     725        l.or    r0, r0, r0
     726        l.or    r0, r0, r0
     727        l.or    r0, r0, r0
     728        l.or    r0, r0, r0
     729        l.or    r0, r0, r0
     730        l.or    r0, r0, r0
     731        l.or    r0, r0, r0
     732        l.or    r0, r0, r0
     733        l.or    r0, r0, r0
     734        l.or    r0, r0, r0
     735        l.or    r0, r0, r0
     736        l.or    r0, r0, r0
     737        l.or    r0, r0, r0
     738        l.or    r0, r0, r0
     739        l.or    r0, r0, r0
     740        l.or    r0, r0, r0
     741        l.or    r0, r0, r0
     742        l.or    r0, r0, r0
     743        l.or    r0, r0, r0
     744        l.or    r0, r0, r0
     745        l.or    r0, r0, r0
     746        l.or    r0, r0, r0
     747        l.or    r0, r0, r0
     748        l.or    r0, r0, r0
     749        l.or    r0, r0, r0
     750        l.or    r0, r0, r0
     751        l.or    r0, r0, r0
     752        l.or    r0, r0, r0
     753        l.or    r0, r0, r0
     754        l.or    r0, r0, r0
     755        l.or    r0, r0, r0
     756        l.or    r0, r0, r0
     757        l.or    r0, r0, r0
     758        l.or    r0, r0, r0
     759        l.or    r0, r0, r0
     760        l.or    r0, r0, r0
     761        l.or    r0, r0, r0
     762        l.or    r0, r0, r0
     763        l.or    r0, r0, r0
     764        l.or    r0, r0, r0
     765        l.or    r0, r0, r0
     766        l.or    r0, r0, r0
     767        l.or    r0, r0, r0
     768        l.or    r0, r0, r0
     769        l.or    r0, r0, r0
     770        l.or    r0, r0, r0
     771        l.or    r0, r0, r0
     772        l.or    r0, r0, r0
     773        l.or    r0, r0, r0
     774        l.or    r0, r0, r0
     775        l.or    r0, r0, r0
     776        l.or    r0, r0, r0
     777        l.or    r0, r0, r0
     778        l.or    r0, r0, r0
     779        l.or    r0, r0, r0
     780        l.or    r0, r0, r0
     781        l.or    r0, r0, r0
     782        l.or    r0, r0, r0
     783        l.or    r0, r0, r0
     784        l.or    r0, r0, r0
     785        l.or    r0, r0, r0
     786        l.or    r0, r0, r0
     787        l.or    r0, r0, r0
     788        l.or    r0, r0, r0
     789        l.or    r0, r0, r0
     790        l.or    r0, r0, r0
     791        l.or    r0, r0, r0
     792        l.or    r0, r0, r0
     793        l.or    r0, r0, r0
     794        l.or    r0, r0, r0
     795        l.or    r0, r0, r0
     796        l.or    r0, r0, r0
     797        l.or    r0, r0, r0
     798        l.or    r0, r0, r0
     799        l.or    r0, r0, r0
     800        l.or    r0, r0, r0
     801        l.or    r0, r0, r0
     802        l.or    r0, r0, r0
     803        l.or    r0, r0, r0
     804        l.or    r0, r0, r0
     805        l.or    r0, r0, r0
     806        l.or    r0, r0, r0
     807        l.or    r0, r0, r0
     808        l.or    r0, r0, r0
     809        l.or    r0, r0, r0
     810        l.or    r0, r0, r0
     811        l.or    r0, r0, r0
     812        l.or    r0, r0, r0
     813        l.or    r0, r0, r0
     814        l.or    r0, r0, r0
     815        l.or    r0, r0, r0
     816        l.or    r0, r0, r0
     817        l.or    r0, r0, r0
     818        l.or    r0, r0, r0
     819        l.or    r0, r0, r0
     820        l.or    r0, r0, r0
     821        l.or    r0, r0, r0
     822        l.or    r0, r0, r0
     823        l.or    r0, r0, r0
     824        l.or    r0, r0, r0
     825        l.or    r0, r0, r0
     826        l.or    r0, r0, r0
     827        l.or    r0, r0, r0
     828        l.or    r0, r0, r0
     829        l.or    r0, r0, r0
     830        l.or    r0, r0, r0
     831        l.or    r0, r0, r0
     832        l.or    r0, r0, r0
     833        l.or    r0, r0, r0
     834        l.or    r0, r0, r0
     835        l.or    r0, r0, r0
     836        l.or    r0, r0, r0
     837        l.or    r0, r0, r0
     838        l.or    r0, r0, r0
     839        l.or    r0, r0, r0
     840        l.or    r0, r0, r0
     841        l.or    r0, r0, r0
     842        l.or    r0, r0, r0
     843        l.or    r0, r0, r0
     844        l.or    r0, r0, r0
     845        l.or    r0, r0, r0
     846        l.or    r0, r0, r0
     847        l.or    r0, r0, r0
     848        l.or    r0, r0, r0
     849        l.or    r0, r0, r0
     850        l.or    r0, r0, r0
     851        l.or    r0, r0, r0
     852        l.or    r0, r0, r0
     853        l.or    r0, r0, r0
     854        l.or    r0, r0, r0
     855        l.or    r0, r0, r0
     856        l.or    r0, r0, r0
     857        l.or    r0, r0, r0
     858        l.or    r0, r0, r0
     859        l.or    r0, r0, r0
     860        l.or    r0, r0, r0
     861        l.or    r0, r0, r0
     862        l.or    r0, r0, r0
     863        l.or    r0, r0, r0
     864        l.or    r0, r0, r0
     865        l.or    r0, r0, r0
     866        l.or    r0, r0, r0
     867        l.or    r0, r0, r0
     868        l.or    r0, r0, r0
     869        l.or    r0, r0, r0
     870        l.or    r0, r0, r0
     871        l.or    r0, r0, r0
     872        l.or    r0, r0, r0
     873        l.or    r0, r0, r0
     874        l.or    r0, r0, r0
     875        l.or    r0, r0, r0
     876        l.or    r0, r0, r0
     877        l.or    r0, r0, r0
     878        l.or    r0, r0, r0
     879        l.or    r0, r0, r0
     880        l.or    r0, r0, r0
     881        l.or    r0, r0, r0
     882        l.or    r0, r0, r0
     883        l.or    r0, r0, r0
     884        l.or    r0, r0, r0
     885        l.or    r0, r0, r0
     886        l.or    r0, r0, r0
     887        l.or    r0, r0, r0
     888        l.or    r0, r0, r0
     889        l.or    r0, r0, r0
     890        l.or    r0, r0, r0
     891        l.or    r0, r0, r0
     892        l.or    r0, r0, r0
     893        l.or    r0, r0, r0
     894        l.or    r0, r0, r0
     895        l.or    r0, r0, r0
     896        l.or    r0, r0, r0
     897        l.or    r0, r0, r0
     898        l.or    r0, r0, r0
     899        l.or    r0, r0, r0
     900        l.or    r0, r0, r0
     901        l.or    r0, r0, r0
     902        l.or    r0, r0, r0
     903        l.or    r0, r0, r0
     904        l.or    r0, r0, r0
     905        l.or    r0, r0, r0
     906        l.or    r0, r0, r0
     907        l.or    r0, r0, r0
     908        l.or    r0, r0, r0
     909        l.or    r0, r0, r0
     910        l.or    r0, r0, r0
     911        l.or    r0, r0, r0
     912        l.or    r0, r0, r0
     913        l.or    r0, r0, r0
     914        l.or    r0, r0, r0
     915        l.or    r0, r0, r0
     916        l.or    r0, r0, r0
     917        l.or    r0, r0, r0
     918        l.or    r0, r0, r0
     919        l.or    r0, r0, r0
     920        l.or    r0, r0, r0
     921        l.or    r0, r0, r0
     922        l.or    r0, r0, r0
     923        l.or    r0, r0, r0
     924        l.or    r0, r0, r0
     925        l.or    r0, r0, r0
     926        l.or    r0, r0, r0
     927        l.or    r0, r0, r0
     928        l.or    r0, r0, r0
     929        l.or    r0, r0, r0
     930        l.or    r0, r0, r0
     931        l.or    r0, r0, r0
     932        l.or    r0, r0, r0
     933        l.or    r0, r0, r0
     934        l.or    r0, r0, r0
     935        l.or    r0, r0, r0
     936        l.or    r0, r0, r0
     937        l.or    r0, r0, r0
     938        l.or    r0, r0, r0
     939        l.or    r0, r0, r0
     940        l.or    r0, r0, r0
     941        l.or    r0, r0, r0
     942        l.or    r0, r0, r0
     943        l.or    r0, r0, r0
     944        l.or    r0, r0, r0
     945        l.or    r0, r0, r0
     946        l.or    r0, r0, r0
     947        l.or    r0, r0, r0
     948        l.or    r0, r0, r0
     949        l.or    r0, r0, r0
     950        l.or    r0, r0, r0
     951        l.or    r0, r0, r0
     952        l.or    r0, r0, r0
     953        l.or    r0, r0, r0
     954        l.or    r0, r0, r0
     955        l.or    r0, r0, r0
     956        l.or    r0, r0, r0
     957        l.or    r0, r0, r0
     958        l.or    r0, r0, r0
     959        l.or    r0, r0, r0
     960        l.or    r0, r0, r0
     961        l.or    r0, r0, r0
     962        l.or    r0, r0, r0
     963        l.or    r0, r0, r0
     964        l.or    r0, r0, r0
     965        l.or    r0, r0, r0
     966        l.or    r0, r0, r0
     967        l.or    r0, r0, r0
     968        l.or    r0, r0, r0
     969        l.or    r0, r0, r0
     970        l.or    r0, r0, r0
     971        l.or    r0, r0, r0
     972        l.or    r0, r0, r0
     973        l.or    r0, r0, r0
     974        l.or    r0, r0, r0
     975        l.or    r0, r0, r0
     976        l.or    r0, r0, r0
     977        l.or    r0, r0, r0
     978        l.or    r0, r0, r0
     979        l.or    r0, r0, r0
     980        l.or    r0, r0, r0
     981        l.or    r0, r0, r0
     982        l.or    r0, r0, r0
     983        l.or    r0, r0, r0
     984        l.or    r0, r0, r0
     985        l.or    r0, r0, r0
     986        l.or    r0, r0, r0
     987        l.or    r0, r0, r0
     988        l.or    r0, r0, r0
     989        l.or    r0, r0, r0
     990        l.or    r0, r0, r0
     991        l.or    r0, r0, r0
     992        l.or    r0, r0, r0
     993        l.or    r0, r0, r0
     994        l.or    r0, r0, r0
     995        l.or    r0, r0, r0
     996        l.or    r0, r0, r0
     997        l.or    r0, r0, r0
     998        l.or    r0, r0, r0
     999        l.or    r0, r0, r0
     1000        l.or    r0, r0, r0
     1001        l.or    r0, r0, r0
     1002        l.or    r0, r0, r0
     1003        l.or    r0, r0, r0
     1004        l.or    r0, r0, r0
     1005        l.or    r0, r0, r0
     1006        l.or    r0, r0, r0
     1007        l.or    r0, r0, r0
     1008        l.or    r0, r0, r0
     1009        l.or    r0, r0, r0
     1010        l.or    r0, r0, r0
     1011        l.or    r0, r0, r0
     1012        l.or    r0, r0, r0
     1013        l.or    r0, r0, r0
     1014        l.or    r0, r0, r0
     1015        l.or    r0, r0, r0
     1016        l.or    r0, r0, r0
     1017        l.or    r0, r0, r0
     1018        l.or    r0, r0, r0
     1019        l.or    r0, r0, r0
     1020        l.or    r0, r0, r0
     1021        l.or    r0, r0, r0
     1022        l.or    r0, r0, r0
     1023        l.or    r0, r0, r0
     1024        l.or    r0, r0, r0
     1025        l.or    r0, r0, r0
     1026        l.or    r0, r0, r0
     1027        l.or    r0, r0, r0
     1028        l.or    r0, r0, r0
     1029        l.or    r0, r0, r0
     1030        l.or    r0, r0, r0
     1031        l.or    r0, r0, r0
     1032        l.or    r0, r0, r0
     1033        l.or    r0, r0, r0
     1034        l.or    r0, r0, r0
     1035        l.or    r0, r0, r0
     1036        l.or    r0, r0, r0
     1037        l.or    r0, r0, r0
     1038        l.or    r0, r0, r0
     1039        l.or    r0, r0, r0
     1040        l.or    r0, r0, r0
     1041        l.or    r0, r0, r0
     1042        l.or    r0, r0, r0
     1043        l.or    r0, r0, r0
     1044        l.or    r0, r0, r0
     1045        l.or    r0, r0, r0
     1046        l.or    r0, r0, r0
     1047        l.or    r0, r0, r0
     1048        l.or    r0, r0, r0
     1049        l.or    r0, r0, r0
     1050        l.or    r0, r0, r0
     1051        l.or    r0, r0, r0
     1052        l.or    r0, r0, r0
     1053        l.or    r0, r0, r0
     1054        l.or    r0, r0, r0
     1055        l.or    r0, r0, r0
     1056        l.or    r0, r0, r0
     1057        l.or    r0, r0, r0
     1058        l.or    r0, r0, r0
     1059        l.or    r0, r0, r0
     1060        l.or    r0, r0, r0
     1061        l.or    r0, r0, r0
     1062        l.or    r0, r0, r0
     1063        l.or    r0, r0, r0
     1064        l.or    r0, r0, r0
     1065        l.or    r0, r0, r0
     1066        l.or    r0, r0, r0
     1067       
    10661068        /*
    10671069        l.or    r0, r0, r0
Note: See TracChangeset for help on using the changeset viewer.