Ignore:
Timestamp:
Dec 19, 2008, 4:34:00 PM (16 years ago)
Author:
rosiere
Message:

1) Update Prediction Table : statistics
2) Size instruction address on 30 bits
3) Change Log File
4) Add debug_level in simulation configuration file

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end
Files:
1 deleted
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/src/test.cpp

    r95 r97  
    7575  ALLOC_SC_SIGNAL ( in_COMMIT_EVENT_ADDRESS_EPCR      ," in_COMMIT_EVENT_ADDRESS_EPCR      ",Taddress_t   );
    7676  ALLOC_SC_SIGNAL ( in_COMMIT_EVENT_ADDRESS_EEAR_VAL  ," in_COMMIT_EVENT_ADDRESS_EEAR_VAL  ",Tcontrol_t   );
    77   ALLOC_SC_SIGNAL ( in_COMMIT_EVENT_ADDRESS_EEAR      ," in_COMMIT_EVENT_ADDRESS_EEAR      ",Taddress_t   );
     77  ALLOC_SC_SIGNAL ( in_COMMIT_EVENT_ADDRESS_EEAR      ," in_COMMIT_EVENT_ADDRESS_EEAR      ",Tgeneral_data_t);
    7878
    7979  ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_VAL            ," in_BRANCH_COMPLETE_VAL            ",Tcontrol_t   ,_param->_nb_inst_branch_complete);
     
    9797  ALLOC1_SC_SIGNAL(out_EVENT_ADDRESS_NEXT_VAL         ,"out_EVENT_ADDRESS_NEXT_VAL         ",Tcontrol_t   ,_param->_nb_context   );
    9898  ALLOC1_SC_SIGNAL(out_EVENT_IS_DS_TAKE               ,"out_EVENT_IS_DS_TAKE               ",Tcontrol_t   ,_param->_nb_context   );
    99                                                                                            
     99  ALLOC1_SC_SIGNAL(out_EVENT_TYPE                     ,"out_EVENT_TYPE                     ",Tevent_type_t,_param->_nb_context   );
     100  ALLOC1_SC_SIGNAL(out_EVENT_DEPTH                    ,"out_EVENT_DEPTH                    ",Tdepth_t     ,_param->_nb_context   );
     101
    100102  ALLOC1_SC_SIGNAL(out_SPR_EVENT_VAL                  ,"out_SPR_EVENT_VAL                  ",Tcontrol_t   ,_param->_nb_context   );
    101103  ALLOC1_SC_SIGNAL( in_SPR_EVENT_ACK                  ," in_SPR_EVENT_ACK                  ",Tcontrol_t   ,_param->_nb_context   );
     
    177179  INSTANCE1_SC_SIGNAL(_Context_State,out_EVENT_ADDRESS_NEXT_VAL         ,_param->_nb_context   );
    178180  INSTANCE1_SC_SIGNAL(_Context_State,out_EVENT_IS_DS_TAKE               ,_param->_nb_context   );
     181  INSTANCE1_SC_SIGNAL(_Context_State,out_EVENT_TYPE                     ,_param->_nb_context   );
     182  if (_param->_have_port_depth)
     183  INSTANCE1_SC_SIGNAL(_Context_State,out_EVENT_DEPTH                    ,_param->_nb_context   );
    179184                                                                       
    180185  INSTANCE1_SC_SIGNAL(_Context_State,out_SPR_EVENT_VAL                  ,_param->_nb_context   );
     
    12731278  DELETE1_SC_SIGNAL(out_EVENT_ADDRESS_NEXT_VAL         ,_param->_nb_context   );
    12741279  DELETE1_SC_SIGNAL(out_EVENT_IS_DS_TAKE               ,_param->_nb_context   );
     1280  DELETE1_SC_SIGNAL(out_EVENT_TYPE                     ,_param->_nb_context   );
     1281  DELETE1_SC_SIGNAL(out_EVENT_DEPTH                    ,_param->_nb_context   );
    12751282  DELETE1_SC_SIGNAL(out_SPR_EVENT_VAL                  ,_param->_nb_context   );
    12761283  DELETE1_SC_SIGNAL( in_SPR_EVENT_ACK                  ,_param->_nb_context   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h

    r95 r97  
    9393  public    : SC_IN (Taddress_t         )   *  in_COMMIT_EVENT_ADDRESS_EPCR          ;
    9494  public    : SC_IN (Tcontrol_t         )   *  in_COMMIT_EVENT_ADDRESS_EEAR_VAL      ;
    95   public    : SC_IN (Taddress_t         )   *  in_COMMIT_EVENT_ADDRESS_EEAR          ;
     95  public    : SC_IN (Tgeneral_data_t    )   *  in_COMMIT_EVENT_ADDRESS_EEAR          ;
    9696
    9797    // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_allocation.cpp

    r95 r97  
    9797      ALLOC_SIGNAL_IN  ( in_COMMIT_EVENT_ADDRESS_EPCR          ,"address_epcr"    ,Taddress_t         ,_param->_size_instruction_address);
    9898      ALLOC_SIGNAL_IN  ( in_COMMIT_EVENT_ADDRESS_EEAR_VAL      ,"address_eear_val",Tcontrol_t         ,1);
    99       ALLOC_SIGNAL_IN  ( in_COMMIT_EVENT_ADDRESS_EEAR          ,"address_eear"    ,Taddress_t         ,_param->_size_instruction_address);
     99      ALLOC_SIGNAL_IN  ( in_COMMIT_EVENT_ADDRESS_EEAR          ,"address_eear"    ,Tgeneral_data_t    ,_param->_size_general_data);
    100100    }
    101101
     
    133133      ALLOC1_SIGNAL_OUT(out_EVENT_ADDRESS_NEXT_VAL             ,"address_next_val",Tcontrol_t        ,1);
    134134      ALLOC1_SIGNAL_OUT(out_EVENT_IS_DS_TAKE                   ,"is_ds_take"      ,Tcontrol_t        ,1);
     135      ALLOC1_SIGNAL_OUT(out_EVENT_TYPE                         ,"type"            ,Tevent_type_t     ,_param->_size_event_type);
     136      ALLOC1_SIGNAL_OUT(out_EVENT_DEPTH                        ,"depth"           ,Tdepth_t          ,_param->_size_depth);
     137
    135138    }
    136139
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_deallocation.cpp

    r95 r97  
    7676        DELETE1_SIGNAL(out_EVENT_ADDRESS_NEXT_VAL             ,_param->_nb_context,1);
    7777        DELETE1_SIGNAL(out_EVENT_IS_DS_TAKE                   ,_param->_nb_context,1);
    78        
     78        DELETE1_SIGNAL(out_EVENT_TYPE                         ,_param->_nb_context,_param->_size_event_type);
     79        DELETE1_SIGNAL(out_EVENT_DEPTH                        ,_param->_nb_context,_param->_size_depth);
     80
    7981        DELETE1_SIGNAL(out_SPR_EVENT_VAL                      ,_param->_nb_context,1);
    8082        DELETE1_SIGNAL( in_SPR_EVENT_ACK                      ,_param->_nb_context,1);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_genMoore.cpp

    r88 r97  
    3838        // SR can't change in this cycle
    3939        // Exception Prefix High
    40         Taddress_t address          = reg_EVENT_ADDRESS [i] | (((state == CONTEXT_STATE_KO_EXCEP_ADDR) and PORT_READ(in_SPR_SR_EPH [i]))?(0xF000000>>2):0);
    41         Taddress_t address_next     = reg_EVENT_ADDRESS_EPCR [i];
    42         Tcontrol_t address_next_val = (state == CONTEXT_STATE_KO_MISS_ADDR) and (reg_EVENT_ADDRESS_EPCR_VAL [i]);
    43         Tcontrol_t is_ds_take       = (state == CONTEXT_STATE_KO_MISS_ADDR) and (reg_EVENT_IS_DS_TAKE       [i]);
     40        Taddress_t    address          = reg_EVENT_ADDRESS [i] | (((state == CONTEXT_STATE_KO_EXCEP_ADDR) and PORT_READ(in_SPR_SR_EPH [i]))?(0xF000000>>2):0);
     41        Taddress_t    address_next     = reg_EVENT_ADDRESS_EPCR [i];
     42        Tcontrol_t    address_next_val = (state == CONTEXT_STATE_KO_MISS_ADDR) and (reg_EVENT_ADDRESS_EPCR_VAL [i]);
     43        Tcontrol_t    is_ds_take       = (state == CONTEXT_STATE_KO_MISS_ADDR) and (reg_EVENT_IS_DS_TAKE       [i]);
    4444        // excep : address exception
    4545        // miss  : address delay_slot, and address dest
    4646        // psync : address next
    4747        // csync : address next
     48        Tevent_type_t type                         ;//[nb_context]
     49        Tdepth_t      depth            = reg_EVENT_DEPTH [i];
     50
     51        switch (state)
     52          {
     53          case CONTEXT_STATE_KO_EXCEP_ADDR : (type = EVENT_TYPE_EXCEPTION         ); break;
     54          case CONTEXT_STATE_KO_MISS_ADDR  : (type = EVENT_TYPE_MISS_SPECULATION  ); break;
     55          case CONTEXT_STATE_KO_PSYNC_ADDR : (type = EVENT_TYPE_PSYNC             ); break;
     56          case CONTEXT_STATE_KO_CSYNC_ADDR : (type = EVENT_TYPE_CSYNC             ); break;
     57          default                          : (type = EVENT_TYPE_NONE              ); break;
     58          }
     59//      (type = EVENT_TYPE_SPR_ACCESS        );
     60//      (type = EVENT_TYPE_MSYNC             );
     61//      (type = EVENT_TYPE_BRANCH_NO_ACCURATE);
     62
    4863        internal_EVENT_VAL [i] = val;
    4964        PORT_WRITE(out_EVENT_VAL              [i], val);
     
    5267        PORT_WRITE(out_EVENT_ADDRESS_NEXT_VAL [i], address_next_val);
    5368        PORT_WRITE(out_EVENT_IS_DS_TAKE       [i], is_ds_take);
     69        PORT_WRITE(out_EVENT_TYPE             [i], type);
     70        if (_param->_have_port_depth)
     71        PORT_WRITE(out_EVENT_DEPTH            [i], depth);
    5472
    5573        log_printf(TRACE,Context_State,FUNCTION,"  * EVENT Context      : %d", i);
     
    5977        log_printf(TRACE,Context_State,FUNCTION,"    * ADDRESS_NEXT_VAL : %d", address_next_val);
    6078        log_printf(TRACE,Context_State,FUNCTION,"    * IS_DS_TAKE       : %d", is_ds_take);
     79        log_printf(TRACE,Context_State,FUNCTION,"    * TYPE             : %d", type);
     80        log_printf(TRACE,Context_State,FUNCTION,"    * DEPTH            : %d", depth);
    6181      }
    6282
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/src/Instruction.cpp

    r88 r97  
    255255    inst->_operation          = instruction_information(INSTRUCTION_L_ADD)._operation; //OPERATION_ALU_L_ADD;
    256256    inst->_has_immediat       = 0;
    257 //  inst->_immediat           = ;
    258     inst->_read_ra            = 1;
    259     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    260     inst->_read_rb            = 1;
    261     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    262     inst->_read_rc            = 0;
    263 //  inst->_num_reg_rc         = ;
     257    inst->_immediat           = 0; // unnecessary
     258    inst->_read_ra            = 1;
     259    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     260    inst->_read_rb            = 1;
     261    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     262    inst->_read_rc            = 0;
     263    inst->_num_reg_rc         = 0; //unnecessary
    264264    inst->_write_rd           = 1;
    265265    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    271271//  inst->_branch_stack_write = ;
    272272//  inst->_branch_direction   = ;
    273 //  inst->_address_next       = ;
     273//  inst->_address_next       = ; // already define : PC+4
    274274    inst->_no_execute         = 0;
    275275    inst->_event_type         = EVENT_TYPE_NONE;
     
    283283    inst->_operation          = instruction_information(INSTRUCTION_L_ADDC)._operation; //OPERATION_ALU_L_ADD;
    284284    inst->_has_immediat       = 0;
    285 //  inst->_immediat           = ;
     285    inst->_immediat           = 0; // unnecessary
    286286    inst->_read_ra            = 1;
    287287    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     
    299299//  inst->_branch_stack_write = ;
    300300//  inst->_branch_direction   = ;
    301 //  inst->_address_next       = ;
     301//  inst->_address_next       = ; // already define : PC+4
    302302    inst->_no_execute         = 0;
    303303    inst->_event_type         = EVENT_TYPE_NONE;
     
    315315    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    316316    inst->_read_rb            = 0;
    317 //  inst->_num_reg_rb         = ;
    318     inst->_read_rc            = 0;
    319 //  inst->_num_reg_rc         = ;
     317    inst->_num_reg_rb         = 0; //unnecessary
     318    inst->_read_rc            = 0;
     319    inst->_num_reg_rc         = 0; //unnecessary
    320320    inst->_write_rd           = 1;
    321321    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    327327//  inst->_branch_stack_write = ;
    328328//  inst->_branch_direction   = ;
    329 //  inst->_address_next       = ;
     329//  inst->_address_next       = ; // already define : PC+4
    330330    inst->_no_execute         = 0;
    331331    inst->_event_type         = EVENT_TYPE_NONE;
     
    343343    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    344344    inst->_read_rb            = 0;
    345 //  inst->_num_reg_rb         = ;
     345    inst->_num_reg_rb         = 0; //unnecessary
    346346    inst->_read_rc            = 1;
    347347    inst->_num_reg_rc         = SPR_LOGIC_SR_CY_OV;
     
    355355//  inst->_branch_stack_write = ;
    356356//  inst->_branch_direction   = ;
    357 //  inst->_address_next       = ;
     357//  inst->_address_next       = ; // already define : PC+4
    358358    inst->_no_execute         = 0;
    359359    inst->_event_type         = EVENT_TYPE_NONE;
     
    367367    inst->_operation          = instruction_information(INSTRUCTION_L_AND)._operation; //OPERATION_ALU_L_AND;
    368368    inst->_has_immediat       = 0;
    369 //  inst->_immediat           = ;
    370     inst->_read_ra            = 1;
    371     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    372     inst->_read_rb            = 1;
    373     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    374     inst->_read_rc            = 0;
    375 //  inst->_num_reg_rc         = ;
    376     inst->_write_rd           = 1;
    377     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    378     inst->_write_re           = 0;
    379 //  inst->_num_reg_re         = ;
    380     inst->_exception_use      = EXCEPTION_USE_NONE;
    381     inst->_exception          = EXCEPTION_DECOD_NONE;
    382 //  inst->_branch_condition   = ;
    383 //  inst->_branch_stack_write = ;
    384 //  inst->_branch_direction   = ;
    385 //  inst->_address_next       = ;
     369    inst->_immediat           = 0; // unnecessary
     370    inst->_read_ra            = 1;
     371    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     372    inst->_read_rb            = 1;
     373    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     374    inst->_read_rc            = 0;
     375    inst->_num_reg_rc         = 0; //unnecessary
     376    inst->_write_rd           = 1;
     377    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     378    inst->_write_re           = 0;
     379    inst->_num_reg_re         = 0; //unnecessary
     380    inst->_exception_use      = EXCEPTION_USE_NONE;
     381    inst->_exception          = EXCEPTION_DECOD_NONE;
     382//  inst->_branch_condition   = ;
     383//  inst->_branch_stack_write = ;
     384//  inst->_branch_direction   = ;
     385//  inst->_address_next       = ; // already define : PC+4
    386386    inst->_no_execute         = 0;
    387387    inst->_event_type         = EVENT_TYPE_NONE;
     
    399399    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    400400    inst->_read_rb            = 0;
    401 //  inst->_num_reg_rb         = ;
    402     inst->_read_rc            = 0;
    403 //  inst->_num_reg_rc         = ;
    404     inst->_write_rd           = 1;
    405     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    406     inst->_write_re           = 0;
    407 //  inst->_num_reg_re         = ;
    408     inst->_exception_use      = EXCEPTION_USE_NONE;
    409     inst->_exception          = EXCEPTION_DECOD_NONE;
    410 //  inst->_branch_condition   = ;
    411 //  inst->_branch_stack_write = ;
    412 //  inst->_branch_direction   = ;
    413 //  inst->_address_next       = ;
     401    inst->_num_reg_rb         = 0; //unnecessary
     402    inst->_read_rc            = 0;
     403    inst->_num_reg_rc         = 0; //unnecessary
     404    inst->_write_rd           = 1;
     405    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     406    inst->_write_re           = 0;
     407    inst->_num_reg_re         = 0; //unnecessary
     408    inst->_exception_use      = EXCEPTION_USE_NONE;
     409    inst->_exception          = EXCEPTION_DECOD_NONE;
     410//  inst->_branch_condition   = ;
     411//  inst->_branch_stack_write = ;
     412//  inst->_branch_direction   = ;
     413//  inst->_address_next       = ; // already define : PC+4
    414414    inst->_no_execute         = 0;
    415415    inst->_event_type         = EVENT_TYPE_NONE;
     
    428428    inst->_immediat           = address_next;
    429429    inst->_read_ra            = 0;
    430 //  inst->_num_reg_ra         = ;
    431     inst->_read_rb            = 0;
    432 //  inst->_num_reg_rb         = ;
     430    inst->_num_reg_ra         = 0; //unnecessary
     431    inst->_read_rb            = 0;
     432    inst->_num_reg_rb         = 0; //unnecessary
    433433    inst->_read_rc            = 1;
    434434    inst->_num_reg_rc         = SPR_LOGIC_SR_F;
    435435    inst->_write_rd           = 0;
    436 //  inst->_num_reg_rd         = ;
    437     inst->_write_re           = 0;
    438 //  inst->_num_reg_re         = ;
     436    inst->_num_reg_rd         = 0; //unnecessary
     437    inst->_write_re           = 0;
     438    inst->_num_reg_re         = 0; //unnecessary
    439439    inst->_exception_use      = EXCEPTION_USE_NONE;
    440440    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    460460    inst->_immediat           = address_next;
    461461    inst->_read_ra            = 0;
    462 //  inst->_num_reg_ra         = ;
    463     inst->_read_rb            = 0;
    464 //  inst->_num_reg_rb         = ;
     462    inst->_num_reg_ra         = 0; //unnecessary
     463    inst->_read_rb            = 0;
     464    inst->_num_reg_rb         = 0; //unnecessary
    465465    inst->_read_rc            = 1;
    466466    inst->_num_reg_rc         = SPR_LOGIC_SR_F;
     
    468468    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    469469    inst->_write_re           = 0;
    470 //  inst->_num_reg_re         = ;
     470    inst->_num_reg_re         = 0; //unnecessary
    471471    inst->_exception_use      = EXCEPTION_USE_NONE;
    472472    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    486486    inst->_operation          = instruction_information(INSTRUCTION_L_CMOV)._operation; //OPERATION_MOVE_L_CMOV;
    487487    inst->_has_immediat       = 0;
    488 //  inst->_immediat           = ;
     488    inst->_immediat           = 0; // unnecessary
    489489    inst->_read_ra            = 1;
    490490    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     
    496496    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    497497    inst->_write_re           = 0;
    498 //  inst->_num_reg_re         = ;
    499     inst->_exception_use      = EXCEPTION_USE_NONE;
    500     inst->_exception          = EXCEPTION_DECOD_NONE;
    501 //  inst->_branch_condition   = ;
    502 //  inst->_branch_stack_write = ;
    503 //  inst->_branch_direction   = ;
    504 //  inst->_address_next       = ;
     498    inst->_num_reg_re         = 0; //unnecessary
     499    inst->_exception_use      = EXCEPTION_USE_NONE;
     500    inst->_exception          = EXCEPTION_DECOD_NONE;
     501//  inst->_branch_condition   = ;
     502//  inst->_branch_stack_write = ;
     503//  inst->_branch_direction   = ;
     504//  inst->_address_next       = ; // already define : PC+4
    505505    inst->_no_execute         = 0;
    506506    inst->_event_type         = EVENT_TYPE_NONE;
     
    520520    inst->_operation          = instruction_information(INSTRUCTION_L_CSYNC)._operation; //OPERATION_SPECIAL_L_CSYNC;
    521521    inst->_has_immediat       = 0;
    522 //  inst->_immediat           = ;
     522    inst->_immediat           = 0; // unnecessary
    523523    inst->_read_ra            = 0;
    524 //  inst->_num_reg_ra         = ;
    525     inst->_read_rb            = 0;
    526 //  inst->_num_reg_rb         = ;
    527     inst->_read_rc            = 0;
    528 //  inst->_num_reg_rc         = ;
    529     inst->_write_rd           = 0;
    530 //  inst->_num_reg_rd         = ;
    531     inst->_write_re           = 0;
    532 //  inst->_num_reg_re         = ;
    533     inst->_exception_use      = EXCEPTION_USE_NONE;
    534     inst->_exception          = EXCEPTION_DECOD_NONE;
    535 //  inst->_branch_condition   = ;
    536 //  inst->_branch_stack_write = ;
    537 //  inst->_branch_direction   = ;
    538 //  inst->_address_next       = ; // don't change
     524    inst->_num_reg_ra         = 0; //unnecessary
     525    inst->_read_rb            = 0;
     526    inst->_num_reg_rb         = 0; //unnecessary
     527    inst->_read_rc            = 0;
     528    inst->_num_reg_rc         = 0; //unnecessary
     529    inst->_write_rd           = 0;
     530    inst->_num_reg_rd         = 0; //unnecessary
     531    inst->_write_re           = 0;
     532    inst->_num_reg_re         = 0; //unnecessary
     533    inst->_exception_use      = EXCEPTION_USE_NONE;
     534    inst->_exception          = EXCEPTION_DECOD_NONE;
     535//  inst->_branch_condition   = ;
     536//  inst->_branch_stack_write = ;
     537//  inst->_branch_direction   = ;
     538//  inst->_address_next       = ; // already define : PC+4 // don't change
    539539    inst->_no_execute         = 0;
    540540    inst->_event_type         = EVENT_TYPE_CSYNC;
     
    558558    inst->_operation          = instruction_information(INSTRUCTION_L_DIV)._operation; //OPERATION_DIV_L_DIV;
    559559    inst->_has_immediat       = 0;
    560 //  inst->_immediat           = ;
    561     inst->_read_ra            = 1;
    562     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    563     inst->_read_rb            = 1;
    564     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    565     inst->_read_rc            = 0;
    566 //  inst->_num_reg_rc         = ;
     560    inst->_immediat           = 0; // unnecessary
     561    inst->_read_ra            = 1;
     562    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     563    inst->_read_rb            = 1;
     564    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     565    inst->_read_rc            = 0;
     566    inst->_num_reg_rc         = 0; //unnecessary
    567567    inst->_write_rd           = 1;
    568568    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    574574//  inst->_branch_stack_write = ;
    575575//  inst->_branch_direction   = ;
    576 //  inst->_address_next       = ;
     576//  inst->_address_next       = ; // already define : PC+4
    577577    inst->_no_execute         = 0;
    578578    inst->_event_type         = EVENT_TYPE_NONE;
     
    586586    inst->_operation          = instruction_information(INSTRUCTION_L_DIVU)._operation; //OPERATION_DIV_L_DIVU;
    587587    inst->_has_immediat       = 0;
    588 //  inst->_immediat           = ;
    589     inst->_read_ra            = 1;
    590     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    591     inst->_read_rb            = 1;
    592     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    593     inst->_read_rc            = 0;
    594 //  inst->_num_reg_rc         = ;
     588    inst->_immediat           = 0; // unnecessary
     589    inst->_read_ra            = 1;
     590    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     591    inst->_read_rb            = 1;
     592    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     593    inst->_read_rc            = 0;
     594    inst->_num_reg_rc         = 0; //unnecessary
    595595    inst->_write_rd           = 1;
    596596    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    602602//  inst->_branch_stack_write = ;
    603603//  inst->_branch_direction   = ;
    604 //  inst->_address_next       = ;
     604//  inst->_address_next       = ; // already define : PC+4
    605605    inst->_no_execute         = 0;
    606606    inst->_event_type         = EVENT_TYPE_NONE;
     
    618618    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    619619    inst->_read_rb            = 0;
    620 //  inst->_num_reg_rb         = ;
    621     inst->_read_rc            = 0;
    622 //  inst->_num_reg_rc         = ;
    623     inst->_write_rd           = 1;
    624     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    625     inst->_write_re           = 0;
    626 //  inst->_num_reg_re         = ;
    627     inst->_exception_use      = EXCEPTION_USE_NONE;
    628     inst->_exception          = EXCEPTION_DECOD_NONE;
    629 //  inst->_branch_condition   = ;
    630 //  inst->_branch_stack_write = ;
    631 //  inst->_branch_direction   = ;
    632 //  inst->_address_next       = ;
     620    inst->_num_reg_rb         = 0; //unnecessary
     621    inst->_read_rc            = 0;
     622    inst->_num_reg_rc         = 0; //unnecessary
     623    inst->_write_rd           = 1;
     624    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     625    inst->_write_re           = 0;
     626    inst->_num_reg_re         = 0; //unnecessary
     627    inst->_exception_use      = EXCEPTION_USE_NONE;
     628    inst->_exception          = EXCEPTION_DECOD_NONE;
     629//  inst->_branch_condition   = ;
     630//  inst->_branch_stack_write = ;
     631//  inst->_branch_direction   = ;
     632//  inst->_address_next       = ; // already define : PC+4
    633633    inst->_no_execute         = 0;
    634634    inst->_event_type         = EVENT_TYPE_NONE;
     
    646646    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    647647    inst->_read_rb            = 0;
    648 //  inst->_num_reg_rb         = ;
    649     inst->_read_rc            = 0;
    650 //  inst->_num_reg_rc         = ;
    651     inst->_write_rd           = 1;
    652     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    653     inst->_write_re           = 0;
    654 //  inst->_num_reg_re         = ;
    655     inst->_exception_use      = EXCEPTION_USE_NONE;
    656     inst->_exception          = EXCEPTION_DECOD_NONE;
    657 //  inst->_branch_condition   = ;
    658 //  inst->_branch_stack_write = ;
    659 //  inst->_branch_direction   = ;
    660 //  inst->_address_next       = ;
     648    inst->_num_reg_rb         = 0; //unnecessary
     649    inst->_read_rc            = 0;
     650    inst->_num_reg_rc         = 0; //unnecessary
     651    inst->_write_rd           = 1;
     652    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     653    inst->_write_re           = 0;
     654    inst->_num_reg_re         = 0; //unnecessary
     655    inst->_exception_use      = EXCEPTION_USE_NONE;
     656    inst->_exception          = EXCEPTION_DECOD_NONE;
     657//  inst->_branch_condition   = ;
     658//  inst->_branch_stack_write = ;
     659//  inst->_branch_direction   = ;
     660//  inst->_address_next       = ; // already define : PC+4
    661661    inst->_no_execute         = 0;
    662662    inst->_event_type         = EVENT_TYPE_NONE;
     
    674674    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    675675    inst->_read_rb            = 0;
    676 //  inst->_num_reg_rb         = ;
    677     inst->_read_rc            = 0;
    678 //  inst->_num_reg_rc         = ;
    679     inst->_write_rd           = 1;
    680     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    681     inst->_write_re           = 0;
    682 //  inst->_num_reg_re         = ;
    683     inst->_exception_use      = EXCEPTION_USE_NONE;
    684     inst->_exception          = EXCEPTION_DECOD_NONE;
    685 //  inst->_branch_condition   = ;
    686 //  inst->_branch_stack_write = ;
    687 //  inst->_branch_direction   = ;
    688 //  inst->_address_next       = ;
     676    inst->_num_reg_rb         = 0; //unnecessary
     677    inst->_read_rc            = 0;
     678    inst->_num_reg_rc         = 0; //unnecessary
     679    inst->_write_rd           = 1;
     680    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     681    inst->_write_re           = 0;
     682    inst->_num_reg_re         = 0; //unnecessary
     683    inst->_exception_use      = EXCEPTION_USE_NONE;
     684    inst->_exception          = EXCEPTION_DECOD_NONE;
     685//  inst->_branch_condition   = ;
     686//  inst->_branch_stack_write = ;
     687//  inst->_branch_direction   = ;
     688//  inst->_address_next       = ; // already define : PC+4
    689689    inst->_no_execute         = 0;
    690690    inst->_event_type         = EVENT_TYPE_NONE;
     
    702702    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    703703    inst->_read_rb            = 0;
    704 //  inst->_num_reg_rb         = ;
    705     inst->_read_rc            = 0;
    706 //  inst->_num_reg_rc         = ;
    707     inst->_write_rd           = 1;
    708     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    709     inst->_write_re           = 0;
    710 //  inst->_num_reg_re         = ;
    711     inst->_exception_use      = EXCEPTION_USE_NONE;
    712     inst->_exception          = EXCEPTION_DECOD_NONE;
    713 //  inst->_branch_condition   = ;
    714 //  inst->_branch_stack_write = ;
    715 //  inst->_branch_direction   = ;
    716 //  inst->_address_next       = ;
     704    inst->_num_reg_rb         = 0; //unnecessary
     705    inst->_read_rc            = 0;
     706    inst->_num_reg_rc         = 0; //unnecessary
     707    inst->_write_rd           = 1;
     708    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     709    inst->_write_re           = 0;
     710    inst->_num_reg_re         = 0; //unnecessary
     711    inst->_exception_use      = EXCEPTION_USE_NONE;
     712    inst->_exception          = EXCEPTION_DECOD_NONE;
     713//  inst->_branch_condition   = ;
     714//  inst->_branch_stack_write = ;
     715//  inst->_branch_direction   = ;
     716//  inst->_address_next       = ; // already define : PC+4
    717717    inst->_no_execute         = 0;
    718718    inst->_event_type         = EVENT_TYPE_NONE;
     
    730730    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    731731    inst->_read_rb            = 0;
    732 //  inst->_num_reg_rb         = ;
    733     inst->_read_rc            = 0;
    734 //  inst->_num_reg_rc         = ;
    735     inst->_write_rd           = 1;
    736     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    737     inst->_write_re           = 0;
    738 //  inst->_num_reg_re         = ;
    739     inst->_exception_use      = EXCEPTION_USE_NONE;
    740     inst->_exception          = EXCEPTION_DECOD_NONE;
    741 //  inst->_branch_condition   = ;
    742 //  inst->_branch_stack_write = ;
    743 //  inst->_branch_direction   = ;
    744 //  inst->_address_next       = ;
     732    inst->_num_reg_rb         = 0; //unnecessary
     733    inst->_read_rc            = 0;
     734    inst->_num_reg_rc         = 0; //unnecessary
     735    inst->_write_rd           = 1;
     736    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     737    inst->_write_re           = 0;
     738    inst->_num_reg_re         = 0; //unnecessary
     739    inst->_exception_use      = EXCEPTION_USE_NONE;
     740    inst->_exception          = EXCEPTION_DECOD_NONE;
     741//  inst->_branch_condition   = ;
     742//  inst->_branch_stack_write = ;
     743//  inst->_branch_direction   = ;
     744//  inst->_address_next       = ; // already define : PC+4
    745745    inst->_no_execute         = 0;
    746746    inst->_event_type         = EVENT_TYPE_NONE;
     
    758758    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    759759    inst->_read_rb            = 0;
    760 //  inst->_num_reg_rb         = ;
    761     inst->_read_rc            = 0;
    762 //  inst->_num_reg_rc         = ;
    763     inst->_write_rd           = 1;
    764     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    765     inst->_write_re           = 0;
    766 //  inst->_num_reg_re         = ;
    767     inst->_exception_use      = EXCEPTION_USE_NONE;
    768     inst->_exception          = EXCEPTION_DECOD_NONE;
    769 //  inst->_branch_condition   = ;
    770 //  inst->_branch_stack_write = ;
    771 //  inst->_branch_direction   = ;
    772 //  inst->_address_next       = ;
     760    inst->_num_reg_rb         = 0; //unnecessary
     761    inst->_read_rc            = 0;
     762    inst->_num_reg_rc         = 0; //unnecessary
     763    inst->_write_rd           = 1;
     764    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     765    inst->_write_re           = 0;
     766    inst->_num_reg_re         = 0; //unnecessary
     767    inst->_exception_use      = EXCEPTION_USE_NONE;
     768    inst->_exception          = EXCEPTION_DECOD_NONE;
     769//  inst->_branch_condition   = ;
     770//  inst->_branch_stack_write = ;
     771//  inst->_branch_direction   = ;
     772//  inst->_address_next       = ; // already define : PC+4
    773773    inst->_no_execute         = 0;
    774774    inst->_event_type         = EVENT_TYPE_NONE;
     
    782782    inst->_operation          = instruction_information(INSTRUCTION_L_FF1)._operation; //OPERATION_FIND_L_FF1;
    783783    inst->_has_immediat       = 0;
    784 //  inst->_immediat           = ;
    785     inst->_read_ra            = 1;
    786     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    787     inst->_read_rb            = 0;
    788 //  inst->_num_reg_rb         = ;
    789     inst->_read_rc            = 0;
    790 //  inst->_num_reg_rc         = ;
    791     inst->_write_rd           = 1;
    792     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    793     inst->_write_re           = 0;
    794 //  inst->_num_reg_re         = ;
    795     inst->_exception_use      = EXCEPTION_USE_NONE;
    796     inst->_exception          = EXCEPTION_DECOD_NONE;
    797 //  inst->_branch_condition   = ;
    798 //  inst->_branch_stack_write = ;
    799 //  inst->_branch_direction   = ;
    800 //  inst->_address_next       = ;
     784    inst->_immediat           = 0; // unnecessary
     785    inst->_read_ra            = 1;
     786    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     787    inst->_read_rb            = 0;
     788    inst->_num_reg_rb         = 0; //unnecessary
     789    inst->_read_rc            = 0;
     790    inst->_num_reg_rc         = 0; //unnecessary
     791    inst->_write_rd           = 1;
     792    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     793    inst->_write_re           = 0;
     794    inst->_num_reg_re         = 0; //unnecessary
     795    inst->_exception_use      = EXCEPTION_USE_NONE;
     796    inst->_exception          = EXCEPTION_DECOD_NONE;
     797//  inst->_branch_condition   = ;
     798//  inst->_branch_stack_write = ;
     799//  inst->_branch_direction   = ;
     800//  inst->_address_next       = ; // already define : PC+4
    801801    inst->_no_execute         = 0;
    802802    inst->_event_type         = EVENT_TYPE_NONE;
     
    810810    inst->_operation          = instruction_information(INSTRUCTION_L_FL1)._operation; //OPERATION_FIND_L_FL1;
    811811    inst->_has_immediat       = 0;
    812 //  inst->_immediat           = ;
    813     inst->_read_ra            = 1;
    814     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    815     inst->_read_rb            = 0;
    816 //  inst->_num_reg_rb         = ;
    817     inst->_read_rc            = 0;
    818 //  inst->_num_reg_rc         = ;
    819     inst->_write_rd           = 1;
    820     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    821     inst->_write_re           = 0;
    822 //  inst->_num_reg_re         = ;
    823     inst->_exception_use      = EXCEPTION_USE_NONE;
    824     inst->_exception          = EXCEPTION_DECOD_NONE;
    825 //  inst->_branch_condition   = ;
    826 //  inst->_branch_stack_write = ;
    827 //  inst->_branch_direction   = ;
    828 //  inst->_address_next       = ;
     812    inst->_immediat           = 0; // unnecessary
     813    inst->_read_ra            = 1;
     814    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     815    inst->_read_rb            = 0;
     816    inst->_num_reg_rb         = 0; //unnecessary
     817    inst->_read_rc            = 0;
     818    inst->_num_reg_rc         = 0; //unnecessary
     819    inst->_write_rd           = 1;
     820    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     821    inst->_write_re           = 0;
     822    inst->_num_reg_re         = 0; //unnecessary
     823    inst->_exception_use      = EXCEPTION_USE_NONE;
     824    inst->_exception          = EXCEPTION_DECOD_NONE;
     825//  inst->_branch_condition   = ;
     826//  inst->_branch_stack_write = ;
     827//  inst->_branch_direction   = ;
     828//  inst->_address_next       = ; // already define : PC+4
    829829    inst->_no_execute         = 0;
    830830    inst->_event_type         = EVENT_TYPE_NONE;
     
    838838    inst->_operation          = instruction_information(INSTRUCTION_L_J)._operation; //OPERATION_BRANCH_NONE;
    839839    inst->_has_immediat       = 0;
    840 //  inst->_immediat           = ;
     840    inst->_immediat           = 0; // unnecessary
    841841    inst->_read_ra            = 0;
    842 //  inst->_num_reg_ra         = ;
    843     inst->_read_rb            = 0;
    844 //  inst->_num_reg_rb         = ;
    845     inst->_read_rc            = 0;
    846 //  inst->_num_reg_rc         = ;
    847     inst->_write_rd           = 0;
    848 //  inst->_num_reg_rd         = ;
    849     inst->_write_re           = 0;
    850 //  inst->_num_reg_re         = ;
     842    inst->_num_reg_ra         = 0; //unnecessary
     843    inst->_read_rb            = 0;
     844    inst->_num_reg_rb         = 0; //unnecessary
     845    inst->_read_rc            = 0;
     846    inst->_num_reg_rc         = 0; //unnecessary
     847    inst->_write_rd           = 0;
     848    inst->_num_reg_rd         = 0; //unnecessary
     849    inst->_write_re           = 0;
     850    inst->_num_reg_re         = 0; //unnecessary
    851851    inst->_exception_use      = EXCEPTION_USE_NONE;
    852852    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    869869    inst->_immediat           = inst->_address_next+1;
    870870    inst->_read_ra            = 0;
    871 //  inst->_num_reg_ra         = ;
    872     inst->_read_rb            = 0;
    873 //  inst->_num_reg_rb         = ;
    874     inst->_read_rc            = 0;
    875 //  inst->_num_reg_rc         = ;
     871    inst->_num_reg_ra         = 0; //unnecessary
     872    inst->_read_rb            = 0;
     873    inst->_num_reg_rb         = 0; //unnecessary
     874    inst->_read_rc            = 0;
     875    inst->_num_reg_rc         = 0; //unnecessary
    876876    inst->_write_rd           = 1;
    877877    inst->_num_reg_rd         = 9; // Link register
    878878    inst->_write_re           = 0;
    879 //  inst->_num_reg_re         = ;
     879    inst->_num_reg_re         = 0; //unnecessary
    880880    inst->_exception_use      = EXCEPTION_USE_NONE;
    881881    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    904904    inst->_operation          = instruction_information(INSTRUCTION_L_JALR)._operation; //OPERATION_BRANCH_L_JALR;
    905905    inst->_has_immediat       = 0;
    906 //  inst->_immediat           = ;
     906    inst->_immediat           = 0; // unnecessary
    907907    inst->_read_ra            = 0;
    908 //  inst->_num_reg_ra         = ;
     908    inst->_num_reg_ra         = 0; //unnecessary
    909909    inst->_read_rb            = 1;
    910910//  inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    911911    inst->_read_rc            = 0;
    912 //  inst->_num_reg_rc         = ;
     912    inst->_num_reg_rc         = 0; //unnecessary
    913913    inst->_write_rd           = 1;
    914914    inst->_num_reg_rd         = 9; // Link register
    915915    inst->_write_re           = 0;
    916 //  inst->_num_reg_re         = ;
     916    inst->_num_reg_re         = 0; //unnecessary
    917917    inst->_exception_use      = EXCEPTION_USE_NONE;
    918918    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    921921//  inst->_branch_stack_write = 1;
    922922    inst->_branch_direction   = 1;
    923 //  inst->_address_next       = ;
     923//  inst->_address_next       = ; // already define : PC+4
    924924    inst->_no_execute         = 0;
    925925    inst->_event_type         = EVENT_TYPE_NONE;
     
    934934    inst->_operation          = instruction_information(INSTRUCTION_L_JR)._operation; //OPERATION_BRANCH_L_JALR;
    935935    inst->_has_immediat       = 0;
    936 //  inst->_immediat           = ;
     936    inst->_immediat           = 0; // unnecessary
    937937    inst->_read_ra            = 0;
    938 //  inst->_num_reg_ra         = ;
    939     inst->_read_rb            = 1;
    940     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    941     inst->_read_rc            = 0;
    942 //  inst->_num_reg_rc         = ;
    943     inst->_write_rd           = 0;
    944 //  inst->_num_reg_rd         = ;
    945     inst->_write_re           = 0;
    946 //  inst->_num_reg_re         = ;
     938    inst->_num_reg_ra         = 0; //unnecessary
     939    inst->_read_rb            = 1;
     940    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     941    inst->_read_rc            = 0;
     942    inst->_num_reg_rc         = 0; //unnecessary
     943    inst->_write_rd           = 0;
     944    inst->_num_reg_rd         = 0; //unnecessary
     945    inst->_write_re           = 0;
     946    inst->_num_reg_re         = 0; //unnecessary
    947947    inst->_exception_use      = EXCEPTION_USE_NONE;
    948948    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    950950//  inst->_branch_stack_write = 0;
    951951    inst->_branch_direction   = 1;
    952 //  inst->_address_next       = ;
     952//  inst->_address_next       = ; // already define : PC+4
    953953    inst->_no_execute         = 0;
    954954    inst->_event_type         = EVENT_TYPE_NONE;
     
    966966    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    967967    inst->_read_rb            = 0;
    968 //  inst->_num_reg_rb         = ;
    969     inst->_read_rc            = 0;
    970 //  inst->_num_reg_rc         = ;
    971     inst->_write_rd           = 1;
    972     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    973     inst->_write_re           = 0;
    974 //  inst->_num_reg_re         = ;
     968    inst->_num_reg_rb         = 0; //unnecessary
     969    inst->_read_rc            = 0;
     970    inst->_num_reg_rc         = 0; //unnecessary
     971    inst->_write_rd           = 1;
     972    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     973    inst->_write_re           = 0;
     974    inst->_num_reg_re         = 0; //unnecessary
    975975    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITHOUT_ALIGNMENT;
    976976    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    978978//  inst->_branch_stack_write = ;
    979979//  inst->_branch_direction   = ;
    980 //  inst->_address_next       = ;
     980//  inst->_address_next       = ; // already define : PC+4
    981981    inst->_no_execute         = 0;
    982982    inst->_event_type         = EVENT_TYPE_NONE;
     
    994994    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    995995    inst->_read_rb            = 0;
    996 //  inst->_num_reg_rb         = ;
    997     inst->_read_rc            = 0;
    998 //  inst->_num_reg_rc         = ;
    999     inst->_write_rd           = 1;
    1000     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1001     inst->_write_re           = 0;
    1002 //  inst->_num_reg_re         = ;
     996    inst->_num_reg_rb         = 0; //unnecessary
     997    inst->_read_rc            = 0;
     998    inst->_num_reg_rc         = 0; //unnecessary
     999    inst->_write_rd           = 1;
     1000    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1001    inst->_write_re           = 0;
     1002    inst->_num_reg_re         = 0; //unnecessary
    10031003    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITHOUT_ALIGNMENT;
    10041004    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    10061006//  inst->_branch_stack_write = ;
    10071007//  inst->_branch_direction   = ;
    1008 //  inst->_address_next       = ;
     1008//  inst->_address_next       = ; // already define : PC+4
    10091009    inst->_no_execute         = 0;
    10101010    inst->_event_type         = EVENT_TYPE_NONE;
     
    10221022    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    10231023    inst->_read_rb            = 0;
    1024 //  inst->_num_reg_rb         = ;
    1025     inst->_read_rc            = 0;
    1026 //  inst->_num_reg_rc         = ;
    1027     inst->_write_rd           = 1;
    1028     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1029     inst->_write_re           = 0;
    1030 //  inst->_num_reg_re         = ;
     1024    inst->_num_reg_rb         = 0; //unnecessary
     1025    inst->_read_rc            = 0;
     1026    inst->_num_reg_rc         = 0; //unnecessary
     1027    inst->_write_rd           = 1;
     1028    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1029    inst->_write_re           = 0;
     1030    inst->_num_reg_re         = 0; //unnecessary
    10311031    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    10321032    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    10341034//  inst->_branch_stack_write = ;
    10351035//  inst->_branch_direction   = ;
    1036 //  inst->_address_next       = ;
     1036//  inst->_address_next       = ; // already define : PC+4
    10371037    inst->_no_execute         = 0;
    10381038    inst->_event_type         = EVENT_TYPE_NONE;
     
    10501050    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    10511051    inst->_read_rb            = 0;
    1052 //  inst->_num_reg_rb         = ;
    1053     inst->_read_rc            = 0;
    1054 //  inst->_num_reg_rc         = ;
    1055     inst->_write_rd           = 1;
    1056     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1057     inst->_write_re           = 0;
    1058 //  inst->_num_reg_re         = ;
     1052    inst->_num_reg_rb         = 0; //unnecessary
     1053    inst->_read_rc            = 0;
     1054    inst->_num_reg_rc         = 0; //unnecessary
     1055    inst->_write_rd           = 1;
     1056    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1057    inst->_write_re           = 0;
     1058    inst->_num_reg_re         = 0; //unnecessary
    10591059    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    10601060    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    10621062//  inst->_branch_stack_write = ;
    10631063//  inst->_branch_direction   = ;
    1064 //  inst->_address_next       = ;
     1064//  inst->_address_next       = ; // already define : PC+4
    10651065    inst->_no_execute         = 0;
    10661066    inst->_event_type         = EVENT_TYPE_NONE;
     
    10781078    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    10791079    inst->_read_rb            = 0;
    1080 //  inst->_num_reg_rb         = ;
    1081     inst->_read_rc            = 0;
    1082 //  inst->_num_reg_rc         = ;
    1083     inst->_write_rd           = 1;
    1084     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1085     inst->_write_re           = 0;
    1086 //  inst->_num_reg_re         = ;
     1080    inst->_num_reg_rb         = 0; //unnecessary
     1081    inst->_read_rc            = 0;
     1082    inst->_num_reg_rc         = 0; //unnecessary
     1083    inst->_write_rd           = 1;
     1084    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1085    inst->_write_re           = 0;
     1086    inst->_num_reg_re         = 0; //unnecessary
    10871087    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    10881088    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    10901090//  inst->_branch_stack_write = ;
    10911091//  inst->_branch_direction   = ;
    1092 //  inst->_address_next       = ;
     1092//  inst->_address_next       = ; // already define : PC+4
    10931093    inst->_no_execute         = 0;
    10941094    inst->_event_type         = EVENT_TYPE_NONE;
     
    11061106    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    11071107    inst->_read_rb            = 0;
    1108 //  inst->_num_reg_rb         = ;
    1109     inst->_read_rc            = 0;
    1110 //  inst->_num_reg_rc         = ;
    1111     inst->_write_rd           = 1;
    1112     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1113     inst->_write_re           = 0;
    1114 //  inst->_num_reg_re         = ;
     1108    inst->_num_reg_rb         = 0; //unnecessary
     1109    inst->_read_rc            = 0;
     1110    inst->_num_reg_rc         = 0; //unnecessary
     1111    inst->_write_rd           = 1;
     1112    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1113    inst->_write_re           = 0;
     1114    inst->_num_reg_re         = 0; //unnecessary
    11151115    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    11161116    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    11181118//  inst->_branch_stack_write = ;
    11191119//  inst->_branch_direction   = ;
    1120 //  inst->_address_next       = ;
     1120//  inst->_address_next       = ; // already define : PC+4
    11211121    inst->_no_execute         = 0;
    11221122    inst->_event_type         = EVENT_TYPE_NONE;
     
    11341134    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    11351135    inst->_read_rb            = 0;
    1136 //  inst->_num_reg_rb         = ;
    1137     inst->_read_rc            = 0;
    1138 //  inst->_num_reg_rc         = ;
    1139     inst->_write_rd           = 1;
    1140     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1141     inst->_write_re           = 0;
    1142 //  inst->_num_reg_re         = ;
     1136    inst->_num_reg_rb         = 0; //unnecessary
     1137    inst->_read_rc            = 0;
     1138    inst->_num_reg_rc         = 0; //unnecessary
     1139    inst->_write_rd           = 1;
     1140    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1141    inst->_write_re           = 0;
     1142    inst->_num_reg_re         = 0; //unnecessary
    11431143    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    11441144    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    11461146//  inst->_branch_stack_write = ;
    11471147//  inst->_branch_direction   = ;
    1148 //  inst->_address_next       = ;
     1148//  inst->_address_next       = ; // already define : PC+4
    11491149    inst->_no_execute         = 0;
    11501150    inst->_event_type         = EVENT_TYPE_NONE;
     
    11581158    inst->_operation          = instruction_information(INSTRUCTION_L_MAC)._operation; //OPERATION_SPECIAL_L_MAC;
    11591159    inst->_has_immediat       = 0;
    1160 //  inst->_immediat           = ;
    1161     inst->_read_ra            = 1;
    1162     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1163     inst->_read_rb            = 1;
    1164     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1165     inst->_read_rc            = 0;
    1166 //  inst->_num_reg_rc         = ;
    1167     inst->_write_rd           = 0;
    1168 //  inst->_num_reg_rd         = ;
    1169     inst->_write_re           = 0;
    1170 //  inst->_num_reg_re         = ;
    1171     inst->_exception_use      = EXCEPTION_USE_NONE;
    1172     inst->_exception          = EXCEPTION_DECOD_NONE;
    1173 //  inst->_branch_condition   = ;
    1174 //  inst->_branch_stack_write = ;
    1175 //  inst->_branch_direction   = ;
    1176 //  inst->_address_next       = ; // don't change
     1160    inst->_immediat           = 0; // unnecessary
     1161    inst->_read_ra            = 1;
     1162    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1163    inst->_read_rb            = 1;
     1164    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1165    inst->_read_rc            = 0;
     1166    inst->_num_reg_rc         = 0; //unnecessary
     1167    inst->_write_rd           = 0;
     1168    inst->_num_reg_rd         = 0; //unnecessary
     1169    inst->_write_re           = 0;
     1170    inst->_num_reg_re         = 0; //unnecessary
     1171    inst->_exception_use      = EXCEPTION_USE_NONE;
     1172    inst->_exception          = EXCEPTION_DECOD_NONE;
     1173//  inst->_branch_condition   = ;
     1174//  inst->_branch_stack_write = ;
     1175//  inst->_branch_direction   = ;
     1176//  inst->_address_next       = ; // already define : PC+4 // don't change
    11771177    inst->_no_execute         = 0;
    11781178    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    11911191    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    11921192    inst->_read_rb            = 0;
    1193 //  inst->_num_reg_rb         = ;
    1194     inst->_read_rc            = 0;
    1195 //  inst->_num_reg_rc         = ;
    1196     inst->_write_rd           = 0;
    1197 //  inst->_num_reg_rd         = ;
    1198     inst->_write_re           = 0;
    1199 //  inst->_num_reg_re         = ;
    1200     inst->_exception_use      = EXCEPTION_USE_NONE;
    1201     inst->_exception          = EXCEPTION_DECOD_NONE;
    1202 //  inst->_branch_condition   = ;
    1203 //  inst->_branch_stack_write = ;
    1204 //  inst->_branch_direction   = ;
    1205 //  inst->_address_next       = ; // don't change
     1193    inst->_num_reg_rb         = 0; //unnecessary
     1194    inst->_read_rc            = 0;
     1195    inst->_num_reg_rc         = 0; //unnecessary
     1196    inst->_write_rd           = 0;
     1197    inst->_num_reg_rd         = 0; //unnecessary
     1198    inst->_write_re           = 0;
     1199    inst->_num_reg_re         = 0; //unnecessary
     1200    inst->_exception_use      = EXCEPTION_USE_NONE;
     1201    inst->_exception          = EXCEPTION_DECOD_NONE;
     1202//  inst->_branch_condition   = ;
     1203//  inst->_branch_stack_write = ;
     1204//  inst->_branch_direction   = ;
     1205//  inst->_address_next       = ; // already define : PC+4 // don't change
    12061206    inst->_no_execute         = 0;
    12071207    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    12211221    inst->_operation          = instruction_information(INSTRUCTION_L_MACRC)._operation; //OPERATION_SPECIAL_L_MACRC;
    12221222    inst->_has_immediat       = 0;
    1223 //  inst->_immediat           = ;
     1223    inst->_immediat           = 0; // unnecessary
    12241224    inst->_read_ra            = 0;
    1225 //  inst->_num_reg_ra         = ;
    1226     inst->_read_rb            = 0;
    1227 //  inst->_num_reg_rb         = ;
    1228     inst->_read_rc            = 0;
    1229 //  inst->_num_reg_rc         = ;
    1230     inst->_write_rd           = 1;
    1231     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1232     inst->_write_re           = 0;
    1233 //  inst->_num_reg_re         = ;
    1234     inst->_exception_use      = EXCEPTION_USE_NONE;
    1235     inst->_exception          = EXCEPTION_DECOD_NONE;
    1236 //  inst->_branch_condition   = ;
    1237 //  inst->_branch_stack_write = ;
    1238 //  inst->_branch_direction   = ;
    1239 //  inst->_address_next       = ; // don't change
     1225    inst->_num_reg_ra         = 0; //unnecessary
     1226    inst->_read_rb            = 0;
     1227    inst->_num_reg_rb         = 0; //unnecessary
     1228    inst->_read_rc            = 0;
     1229    inst->_num_reg_rc         = 0; //unnecessary
     1230    inst->_write_rd           = 1;
     1231    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1232    inst->_write_re           = 0;
     1233    inst->_num_reg_re         = 0; //unnecessary
     1234    inst->_exception_use      = EXCEPTION_USE_NONE;
     1235    inst->_exception          = EXCEPTION_DECOD_NONE;
     1236//  inst->_branch_condition   = ;
     1237//  inst->_branch_stack_write = ;
     1238//  inst->_branch_direction   = ;
     1239//  inst->_address_next       = ; // already define : PC+4 // don't change
    12401240    inst->_no_execute         = 0;
    12411241    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    12541254    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    12551255    inst->_read_rb            = 0;
    1256 //  inst->_num_reg_rb         = ;
    1257     inst->_read_rc            = 0;
    1258 //  inst->_num_reg_rc         = ;
    1259     inst->_write_rd           = 1;
    1260     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1261     inst->_write_re           = 0;
    1262 //  inst->_num_reg_re         = ;
    1263     inst->_exception_use      = EXCEPTION_USE_NONE;
    1264     inst->_exception          = EXCEPTION_DECOD_NONE;
    1265 //  inst->_branch_condition   = ;
    1266 //  inst->_branch_stack_write = ;
    1267 //  inst->_branch_direction   = ;
    1268 //  inst->_address_next       = ; // don't change
     1256    inst->_num_reg_rb         = 0; //unnecessary
     1257    inst->_read_rc            = 0;
     1258    inst->_num_reg_rc         = 0; //unnecessary
     1259    inst->_write_rd           = 1;
     1260    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1261    inst->_write_re           = 0;
     1262    inst->_num_reg_re         = 0; //unnecessary
     1263    inst->_exception_use      = EXCEPTION_USE_NONE;
     1264    inst->_exception          = EXCEPTION_DECOD_NONE;
     1265//  inst->_branch_condition   = ;
     1266//  inst->_branch_stack_write = ;
     1267//  inst->_branch_direction   = ;
     1268//  inst->_address_next       = ; // already define : PC+4 // don't change
    12691269    inst->_no_execute         = 0;
    12701270    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    12801280    inst->_immediat           = EXTENDZ(inst->_instruction,16);
    12811281    inst->_read_ra            = 0;
    1282 //  inst->_num_reg_ra         = ;
    1283     inst->_read_rb            = 0;
    1284 //  inst->_num_reg_rb         = ;
    1285     inst->_read_rc            = 0;
    1286 //  inst->_num_reg_rc         = ;
    1287     inst->_write_rd           = 1;
    1288     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1289     inst->_write_re           = 0;
    1290 //  inst->_num_reg_re         = ;
    1291     inst->_exception_use      = EXCEPTION_USE_NONE;
    1292     inst->_exception          = EXCEPTION_DECOD_NONE;
    1293 //  inst->_branch_condition   = ;
    1294 //  inst->_branch_stack_write = ;
    1295 //  inst->_branch_direction   = ;
    1296 //  inst->_address_next       = ;
     1282    inst->_num_reg_ra         = 0; //unnecessary
     1283    inst->_read_rb            = 0;
     1284    inst->_num_reg_rb         = 0; //unnecessary
     1285    inst->_read_rc            = 0;
     1286    inst->_num_reg_rc         = 0; //unnecessary
     1287    inst->_write_rd           = 1;
     1288    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1289    inst->_write_re           = 0;
     1290    inst->_num_reg_re         = 0; //unnecessary
     1291    inst->_exception_use      = EXCEPTION_USE_NONE;
     1292    inst->_exception          = EXCEPTION_DECOD_NONE;
     1293//  inst->_branch_condition   = ;
     1294//  inst->_branch_stack_write = ;
     1295//  inst->_branch_direction   = ;
     1296//  inst->_address_next       = ; // already define : PC+4
    12971297    inst->_no_execute         = 0;
    12981298    inst->_event_type         = EVENT_TYPE_NONE;
     
    13061306    inst->_operation          = instruction_information(INSTRUCTION_L_MSB)._operation; //OPERATION_SPECIAL_L_MSB;
    13071307    inst->_has_immediat       = 0;
    1308 //  inst->_immediat           = ;
    1309     inst->_read_ra            = 1;
    1310     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1311     inst->_read_rb            = 1;
    1312     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1313     inst->_read_rc            = 0;
    1314 //  inst->_num_reg_rc         = ;
    1315     inst->_write_rd           = 0;
    1316 //  inst->_num_reg_rd         = ;
    1317     inst->_write_re           = 0;
    1318 //  inst->_num_reg_re         = ;
    1319     inst->_exception_use      = EXCEPTION_USE_NONE;
    1320     inst->_exception          = EXCEPTION_DECOD_NONE;
    1321 //  inst->_branch_condition   = ;
    1322 //  inst->_branch_stack_write = ;
    1323 //  inst->_branch_direction   = ;
    1324 //  inst->_address_next       = ; // don't change
     1308    inst->_immediat           = 0; // unnecessary
     1309    inst->_read_ra            = 1;
     1310    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1311    inst->_read_rb            = 1;
     1312    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1313    inst->_read_rc            = 0;
     1314    inst->_num_reg_rc         = 0; //unnecessary
     1315    inst->_write_rd           = 0;
     1316    inst->_num_reg_rd         = 0; //unnecessary
     1317    inst->_write_re           = 0;
     1318    inst->_num_reg_re         = 0; //unnecessary
     1319    inst->_exception_use      = EXCEPTION_USE_NONE;
     1320    inst->_exception          = EXCEPTION_DECOD_NONE;
     1321//  inst->_branch_condition   = ;
     1322//  inst->_branch_stack_write = ;
     1323//  inst->_branch_direction   = ;
     1324//  inst->_address_next       = ; // already define : PC+4 // don't change
    13251325    inst->_no_execute         = 0;
    13261326    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    13401340    inst->_operation          = instruction_information(INSTRUCTION_L_MSYNC)._operation; //OPERATION_SPECIAL_L_MSYNC;
    13411341    inst->_has_immediat       = 0;
    1342 //  inst->_immediat           = ;
     1342    inst->_immediat           = 0; // unnecessary
    13431343    inst->_read_ra            = 0;
    1344 //  inst->_num_reg_ra         = ;
    1345     inst->_read_rb            = 0;
    1346 //  inst->_num_reg_rb         = ;
    1347     inst->_read_rc            = 0;
    1348 //  inst->_num_reg_rc         = ;
    1349     inst->_write_rd           = 0;
    1350 //  inst->_num_reg_rd         = ;
    1351     inst->_write_re           = 0;
    1352 //  inst->_num_reg_re         = ;
    1353     inst->_exception_use      = EXCEPTION_USE_NONE;
    1354     inst->_exception          = EXCEPTION_DECOD_NONE;
    1355 //  inst->_branch_condition   = ;
    1356 //  inst->_branch_stack_write = ;
    1357 //  inst->_branch_direction   = ;
    1358 //  inst->_address_next       = ; // don't change
     1344    inst->_num_reg_ra         = 0; //unnecessary
     1345    inst->_read_rb            = 0;
     1346    inst->_num_reg_rb         = 0; //unnecessary
     1347    inst->_read_rc            = 0;
     1348    inst->_num_reg_rc         = 0; //unnecessary
     1349    inst->_write_rd           = 0;
     1350    inst->_num_reg_rd         = 0; //unnecessary
     1351    inst->_write_re           = 0;
     1352    inst->_num_reg_re         = 0; //unnecessary
     1353    inst->_exception_use      = EXCEPTION_USE_NONE;
     1354    inst->_exception          = EXCEPTION_DECOD_NONE;
     1355//  inst->_branch_condition   = ;
     1356//  inst->_branch_stack_write = ;
     1357//  inst->_branch_direction   = ;
     1358//  inst->_address_next       = ; // already define : PC+4 // don't change
    13591359    inst->_no_execute         = 0;
    13601360    inst->_event_type         = EVENT_TYPE_MSYNC;
     
    13761376    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    13771377    inst->_read_rc            = 0;
    1378 //  inst->_num_reg_rc         = ;
    1379     inst->_write_rd           = 0;
    1380 //  inst->_num_reg_rd         = ;
    1381     inst->_write_re           = 0;
    1382 //  inst->_num_reg_re         = ;
    1383     inst->_exception_use      = EXCEPTION_USE_NONE;
    1384     inst->_exception          = EXCEPTION_DECOD_NONE;
    1385 //  inst->_branch_condition   = ;
    1386 //  inst->_branch_stack_write = ;
    1387 //  inst->_branch_direction   = ;
    1388 //  inst->_address_next       = ; // don't change
     1378    inst->_num_reg_rc         = 0; //unnecessary
     1379    inst->_write_rd           = 0;
     1380    inst->_num_reg_rd         = 0; //unnecessary
     1381    inst->_write_re           = 0;
     1382    inst->_num_reg_re         = 0; //unnecessary
     1383    inst->_exception_use      = EXCEPTION_USE_NONE;
     1384    inst->_exception          = EXCEPTION_DECOD_NONE;
     1385//  inst->_branch_condition   = ;
     1386//  inst->_branch_stack_write = ;
     1387//  inst->_branch_direction   = ;
     1388//  inst->_address_next       = ; // already define : PC+4 // don't change
    13891389    inst->_no_execute         = 0;
    13901390    inst->_event_type         = EVENT_TYPE_SPR_ACCESS;
     
    13981398    inst->_operation          = instruction_information(INSTRUCTION_L_MUL)._operation; //OPERATION_MUL_L_MUL;
    13991399    inst->_has_immediat       = 0;
    1400 //  inst->_immediat           = ;
    1401     inst->_read_ra            = 1;
    1402     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1403     inst->_read_rb            = 1;
    1404     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1405     inst->_read_rc            = 0;
    1406 //  inst->_num_reg_rc         = ;
     1400    inst->_immediat           = 0; // unnecessary
     1401    inst->_read_ra            = 1;
     1402    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1403    inst->_read_rb            = 1;
     1404    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1405    inst->_read_rc            = 0;
     1406    inst->_num_reg_rc         = 0; //unnecessary
    14071407    inst->_write_rd           = 1;
    14081408    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    14141414//  inst->_branch_stack_write = ;
    14151415//  inst->_branch_direction   = ;
    1416 //  inst->_address_next       = ;
     1416//  inst->_address_next       = ; // already define : PC+4
    14171417    inst->_no_execute         = 0;
    14181418    inst->_event_type         = EVENT_TYPE_NONE;
     
    14301430    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    14311431    inst->_read_rb            = 0;
    1432 //  inst->_num_reg_rb         = ;
    1433     inst->_read_rc            = 0;
    1434 //  inst->_num_reg_rc         = ;
     1432    inst->_num_reg_rb         = 0; //unnecessary
     1433    inst->_read_rc            = 0;
     1434    inst->_num_reg_rc         = 0; //unnecessary
    14351435    inst->_write_rd           = 1;
    14361436    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    14421442//  inst->_branch_stack_write = ;
    14431443//  inst->_branch_direction   = ;
    1444 //  inst->_address_next       = ;
     1444//  inst->_address_next       = ; // already define : PC+4
    14451445    inst->_no_execute         = 0;
    14461446    inst->_event_type         = EVENT_TYPE_NONE;
     
    14541454    inst->_operation          = instruction_information(INSTRUCTION_L_MULU)._operation; //OPERATION_MUL_L_MULU;
    14551455    inst->_has_immediat       = 0;
    1456 //  inst->_immediat           = ;
    1457     inst->_read_ra            = 1;
    1458     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1459     inst->_read_rb            = 1;
    1460     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1461     inst->_read_rc            = 0;
    1462 //  inst->_num_reg_rc         = ;
     1456    inst->_immediat           = 0; // unnecessary
     1457    inst->_read_ra            = 1;
     1458    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1459    inst->_read_rb            = 1;
     1460    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1461    inst->_read_rc            = 0;
     1462    inst->_num_reg_rc         = 0; //unnecessary
    14631463    inst->_write_rd           = 1;
    14641464    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    14701470//  inst->_branch_stack_write = ;
    14711471//  inst->_branch_direction   = ;
    1472 //  inst->_address_next       = ;
     1472//  inst->_address_next       = ; // already define : PC+4
    14731473    inst->_no_execute         = 0;
    14741474    inst->_event_type         = EVENT_TYPE_NONE;
     
    14841484//  inst->_immediat           = EXTENDZ(inst->_instruction,16);
    14851485    inst->_has_immediat       = 0;
    1486 //  inst->_immediat           = ;
     1486    inst->_immediat           = 0; // unnecessary
    14871487    inst->_read_ra            = 0;
    1488 //  inst->_num_reg_ra         = ;
    1489     inst->_read_rb            = 0;
    1490 //  inst->_num_reg_rb         = ;
    1491     inst->_read_rc            = 0;
    1492 //  inst->_num_reg_rc         = ;
    1493     inst->_write_rd           = 0;
    1494 //  inst->_num_reg_rd         = ;
    1495     inst->_write_re           = 0;
    1496 //  inst->_num_reg_re         = ;
    1497     inst->_exception_use      = EXCEPTION_USE_NONE;
    1498     inst->_exception          = EXCEPTION_DECOD_NONE;
    1499 //  inst->_branch_condition   = ;
    1500 //  inst->_branch_stack_write = ;
    1501 //  inst->_branch_direction   = ;
    1502 //  inst->_address_next       = ;
     1488    inst->_num_reg_ra         = 0; //unnecessary
     1489    inst->_read_rb            = 0;
     1490    inst->_num_reg_rb         = 0; //unnecessary
     1491    inst->_read_rc            = 0;
     1492    inst->_num_reg_rc         = 0; //unnecessary
     1493    inst->_write_rd           = 0;
     1494    inst->_num_reg_rd         = 0; //unnecessary
     1495    inst->_write_re           = 0;
     1496    inst->_num_reg_re         = 0; //unnecessary
     1497    inst->_exception_use      = EXCEPTION_USE_NONE;
     1498    inst->_exception          = EXCEPTION_DECOD_NONE;
     1499//  inst->_branch_condition   = ;
     1500//  inst->_branch_stack_write = ;
     1501//  inst->_branch_direction   = ;
     1502//  inst->_address_next       = ; // already define : PC+4
    15031503    inst->_no_execute         = 1;
    15041504    inst->_event_type         = EVENT_TYPE_NONE;
     
    15121512    inst->_operation          = instruction_information(INSTRUCTION_L_OR)._operation; //OPERATION_ALU_L_OR;
    15131513    inst->_has_immediat       = 0;
    1514 //  inst->_immediat           = ;
    1515     inst->_read_ra            = 1;
    1516     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1517     inst->_read_rb            = 1;
    1518     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1519     inst->_read_rc            = 0;
    1520 //  inst->_num_reg_rc         = ;
    1521     inst->_write_rd           = 1;
    1522     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1523     inst->_write_re           = 0;
    1524 //  inst->_num_reg_re         = ;
    1525     inst->_exception_use      = EXCEPTION_USE_NONE;
    1526     inst->_exception          = EXCEPTION_DECOD_NONE;
    1527 //  inst->_branch_condition   = ;
    1528 //  inst->_branch_stack_write = ;
    1529 //  inst->_branch_direction   = ;
    1530 //  inst->_address_next       = ;
     1514    inst->_immediat           = 0; // unnecessary
     1515    inst->_read_ra            = 1;
     1516    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1517    inst->_read_rb            = 1;
     1518    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1519    inst->_read_rc            = 0;
     1520    inst->_num_reg_rc         = 0; //unnecessary
     1521    inst->_write_rd           = 1;
     1522    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1523    inst->_write_re           = 0;
     1524    inst->_num_reg_re         = 0; //unnecessary
     1525    inst->_exception_use      = EXCEPTION_USE_NONE;
     1526    inst->_exception          = EXCEPTION_DECOD_NONE;
     1527//  inst->_branch_condition   = ;
     1528//  inst->_branch_stack_write = ;
     1529//  inst->_branch_direction   = ;
     1530//  inst->_address_next       = ; // already define : PC+4
    15311531    inst->_no_execute         = 0;
    15321532    inst->_event_type         = EVENT_TYPE_NONE;
     
    15441544    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    15451545    inst->_read_rb            = 0;
    1546 //  inst->_num_reg_rb         = ;
    1547     inst->_read_rc            = 0;
    1548 //  inst->_num_reg_rc         = ;
    1549     inst->_write_rd           = 1;
    1550     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1551     inst->_write_re           = 0;
    1552 //  inst->_num_reg_re         = ;
    1553     inst->_exception_use      = EXCEPTION_USE_NONE;
    1554     inst->_exception          = EXCEPTION_DECOD_NONE;
    1555 //  inst->_branch_condition   = ;
    1556 //  inst->_branch_stack_write = ;
    1557 //  inst->_branch_direction   = ;
    1558 //  inst->_address_next       = ;
     1546    inst->_num_reg_rb         = 0; //unnecessary
     1547    inst->_read_rc            = 0;
     1548    inst->_num_reg_rc         = 0; //unnecessary
     1549    inst->_write_rd           = 1;
     1550    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1551    inst->_write_re           = 0;
     1552    inst->_num_reg_re         = 0; //unnecessary
     1553    inst->_exception_use      = EXCEPTION_USE_NONE;
     1554    inst->_exception          = EXCEPTION_DECOD_NONE;
     1555//  inst->_branch_condition   = ;
     1556//  inst->_branch_stack_write = ;
     1557//  inst->_branch_direction   = ;
     1558//  inst->_address_next       = ; // already define : PC+4
    15591559    inst->_no_execute         = 0;
    15601560    inst->_event_type         = EVENT_TYPE_NONE;
     
    15741574    inst->_operation          = instruction_information(INSTRUCTION_L_PSYNC)._operation; //OPERATION_SPECIAL_L_PSYNC;
    15751575    inst->_has_immediat       = 0;
    1576 //  inst->_immediat           = ;
     1576    inst->_immediat           = 0; // unnecessary
    15771577    inst->_read_ra            = 0;
    1578 //  inst->_num_reg_ra         = ;
    1579     inst->_read_rb            = 0;
    1580 //  inst->_num_reg_rb         = ;
    1581     inst->_read_rc            = 0;
    1582 //  inst->_num_reg_rc         = ;
    1583     inst->_write_rd           = 0;
    1584 //  inst->_num_reg_rd         = ;
    1585     inst->_write_re           = 0;
    1586 //  inst->_num_reg_re         = ;
    1587     inst->_exception_use      = EXCEPTION_USE_NONE;
    1588     inst->_exception          = EXCEPTION_DECOD_NONE;
    1589 //  inst->_branch_condition   = ;
    1590 //  inst->_branch_stack_write = ;
    1591 //  inst->_branch_direction   = ;
    1592 //  inst->_address_next       = ; // don't change
     1578    inst->_num_reg_ra         = 0; //unnecessary
     1579    inst->_read_rb            = 0;
     1580    inst->_num_reg_rb         = 0; //unnecessary
     1581    inst->_read_rc            = 0;
     1582    inst->_num_reg_rc         = 0; //unnecessary
     1583    inst->_write_rd           = 0;
     1584    inst->_num_reg_rd         = 0; //unnecessary
     1585    inst->_write_re           = 0;
     1586    inst->_num_reg_re         = 0; //unnecessary
     1587    inst->_exception_use      = EXCEPTION_USE_NONE;
     1588    inst->_exception          = EXCEPTION_DECOD_NONE;
     1589//  inst->_branch_condition   = ;
     1590//  inst->_branch_stack_write = ;
     1591//  inst->_branch_direction   = ;
     1592//  inst->_address_next       = ; // already define : PC+4 // don't change
    15931593    inst->_no_execute         = 0;
    15941594    inst->_event_type         = EVENT_TYPE_PSYNC;
     
    16031603    inst->_operation          = instruction_information(INSTRUCTION_L_RFE)._operation; //OPERATION_SPECIAL_L_RFE;
    16041604    inst->_has_immediat       = 0;
    1605 //  inst->_immediat           = ;
     1605    inst->_immediat           = 0; // unnecessary
    16061606    inst->_read_ra            = 0;
    1607 //  inst->_num_reg_ra         = ;
    1608     inst->_read_rb            = 0;
    1609 //  inst->_num_reg_rb         = ;
    1610     inst->_read_rc            = 0;
    1611 //  inst->_num_reg_rc         = ;
    1612     inst->_write_rd           = 0;
    1613 //  inst->_num_reg_rd         = ;
    1614     inst->_write_re           = 0;
    1615 //  inst->_num_reg_re         = ;
    1616     inst->_exception_use      = EXCEPTION_USE_NONE;
    1617     inst->_exception          = EXCEPTION_DECOD_NONE;
    1618 //  inst->_branch_condition   = ;
    1619 //  inst->_branch_stack_write = ;
    1620 //  inst->_branch_direction   = ;
    1621 //  inst->_address_next       = ; // don't change
     1607    inst->_num_reg_ra         = 0; //unnecessary
     1608    inst->_read_rb            = 0;
     1609    inst->_num_reg_rb         = 0; //unnecessary
     1610    inst->_read_rc            = 0;
     1611    inst->_num_reg_rc         = 0; //unnecessary
     1612    inst->_write_rd           = 0;
     1613    inst->_num_reg_rd         = 0; //unnecessary
     1614    inst->_write_re           = 0;
     1615    inst->_num_reg_re         = 0; //unnecessary
     1616    inst->_exception_use      = EXCEPTION_USE_NONE;
     1617    inst->_exception          = EXCEPTION_DECOD_NONE;
     1618//  inst->_branch_condition   = ;
     1619//  inst->_branch_stack_write = ;
     1620//  inst->_branch_direction   = ;
     1621//  inst->_address_next       = ; // already define : PC+4 // don't change
    16221622    inst->_no_execute         = 1;
    16231623    inst->_event_type         = EVENT_TYPE_NONE; // can't anticip this instruction : must read EPCR in rename stage
     
    16311631    inst->_operation          = instruction_information(INSTRUCTION_L_ROR)._operation; //OPERATION_SHIFT_L_ROR;
    16321632    inst->_has_immediat       = 0;
    1633 //  inst->_immediat           = ;
    1634     inst->_read_ra            = 1;
    1635     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1636     inst->_read_rb            = 1;
    1637     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1638     inst->_read_rc            = 0;
    1639 //  inst->_num_reg_rc         = ;
    1640     inst->_write_rd           = 1;
    1641     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1642     inst->_write_re           = 0;
    1643 //  inst->_num_reg_re         = ;
    1644     inst->_exception_use      = EXCEPTION_USE_NONE;
    1645     inst->_exception          = EXCEPTION_DECOD_NONE;
    1646 //  inst->_branch_condition   = ;
    1647 //  inst->_branch_stack_write = ;
    1648 //  inst->_branch_direction   = ;
    1649 //  inst->_address_next       = ;
     1633    inst->_immediat           = 0; // unnecessary
     1634    inst->_read_ra            = 1;
     1635    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1636    inst->_read_rb            = 1;
     1637    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1638    inst->_read_rc            = 0;
     1639    inst->_num_reg_rc         = 0; //unnecessary
     1640    inst->_write_rd           = 1;
     1641    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1642    inst->_write_re           = 0;
     1643    inst->_num_reg_re         = 0; //unnecessary
     1644    inst->_exception_use      = EXCEPTION_USE_NONE;
     1645    inst->_exception          = EXCEPTION_DECOD_NONE;
     1646//  inst->_branch_condition   = ;
     1647//  inst->_branch_stack_write = ;
     1648//  inst->_branch_direction   = ;
     1649//  inst->_address_next       = ; // already define : PC+4
    16501650    inst->_no_execute         = 0;
    16511651    inst->_event_type         = EVENT_TYPE_NONE;
     
    16631663    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    16641664    inst->_read_rb            = 0;
    1665 //  inst->_num_reg_rb         = ;
    1666     inst->_read_rc            = 0;
    1667 //  inst->_num_reg_rc         = ;
    1668     inst->_write_rd           = 1;
    1669     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    1670     inst->_write_re           = 0;
    1671 //  inst->_num_reg_re         = ;
    1672     inst->_exception_use      = EXCEPTION_USE_NONE;
    1673     inst->_exception          = EXCEPTION_DECOD_NONE;
    1674 //  inst->_branch_condition   = ;
    1675 //  inst->_branch_stack_write = ;
    1676 //  inst->_branch_direction   = ;
    1677 //  inst->_address_next       = ;
     1665    inst->_num_reg_rb         = 0; //unnecessary
     1666    inst->_read_rc            = 0;
     1667    inst->_num_reg_rc         = 0; //unnecessary
     1668    inst->_write_rd           = 1;
     1669    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     1670    inst->_write_re           = 0;
     1671    inst->_num_reg_re         = 0; //unnecessary
     1672    inst->_exception_use      = EXCEPTION_USE_NONE;
     1673    inst->_exception          = EXCEPTION_DECOD_NONE;
     1674//  inst->_branch_condition   = ;
     1675//  inst->_branch_stack_write = ;
     1676//  inst->_branch_direction   = ;
     1677//  inst->_address_next       = ; // already define : PC+4
    16781678    inst->_no_execute         = 0;
    16791679    inst->_event_type         = EVENT_TYPE_NONE;
     
    16941694    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    16951695    inst->_read_rc            = 0;
    1696 //  inst->_num_reg_rc         = ;
    1697     inst->_write_rd           = 0;
    1698 //  inst->_num_reg_rd         = ;
    1699     inst->_write_re           = 0;
    1700 //  inst->_num_reg_re         = ;
     1696    inst->_num_reg_rc         = 0; //unnecessary
     1697    inst->_write_rd           = 0;
     1698    inst->_num_reg_rd         = 0; //unnecessary
     1699    inst->_write_re           = 0;
     1700    inst->_num_reg_re         = 0; //unnecessary
    17011701    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITHOUT_ALIGNMENT;
    17021702    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    17041704//  inst->_branch_stack_write = ;
    17051705//  inst->_branch_direction   = ;
    1706 //  inst->_address_next       = ;
     1706//  inst->_address_next       = ; // already define : PC+4
    17071707    inst->_no_execute         = 0;
    17081708    inst->_event_type         = EVENT_TYPE_NONE;
     
    17231723    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    17241724    inst->_read_rc            = 0;
    1725 //  inst->_num_reg_rc         = ;
    1726     inst->_write_rd           = 0;
    1727 //  inst->_num_reg_rd         = ;
    1728     inst->_write_re           = 0;
    1729 //  inst->_num_reg_re         = ;
     1725    inst->_num_reg_rc         = 0; //unnecessary
     1726    inst->_write_rd           = 0;
     1727    inst->_num_reg_rd         = 0; //unnecessary
     1728    inst->_write_re           = 0;
     1729    inst->_num_reg_re         = 0; //unnecessary
    17301730    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    17311731    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    17331733//  inst->_branch_stack_write = ;
    17341734//  inst->_branch_direction   = ;
    1735 //  inst->_address_next       = ;
     1735//  inst->_address_next       = ; // already define : PC+4
    17361736    inst->_no_execute         = 0;
    17371737    inst->_event_type         = EVENT_TYPE_NONE;
     
    17451745    inst->_operation          = instruction_information(INSTRUCTION_L_SFEQ)._operation; //OPERATION_TEST_L_SFEQ;
    17461746    inst->_has_immediat       = 0;
    1747 //  inst->_immediat           = ;
    1748     inst->_read_ra            = 1;
    1749     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1750     inst->_read_rb            = 1;
    1751     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1752     inst->_read_rc            = 0;
    1753 //  inst->_num_reg_rc         = ;
    1754     inst->_write_rd           = 0;
    1755 //  inst->_num_reg_rd         = ;
     1747    inst->_immediat           = 0; // unnecessary
     1748    inst->_read_ra            = 1;
     1749    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1750    inst->_read_rb            = 1;
     1751    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1752    inst->_read_rc            = 0;
     1753    inst->_num_reg_rc         = 0; //unnecessary
     1754    inst->_write_rd           = 0;
     1755    inst->_num_reg_rd         = 0; //unnecessary
    17561756    inst->_write_re           = 1;
    17571757    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    17611761//  inst->_branch_stack_write = ;
    17621762//  inst->_branch_direction   = ;
    1763 //  inst->_address_next       = ;
     1763//  inst->_address_next       = ; // already define : PC+4
    17641764    inst->_no_execute         = 0;
    17651765    inst->_event_type         = EVENT_TYPE_NONE;
     
    17771777    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    17781778    inst->_read_rb            = 0;
    1779 //  inst->_num_reg_rb         = ;
    1780     inst->_read_rc            = 0;
    1781 //  inst->_num_reg_rc         = ;
    1782     inst->_write_rd           = 0;
    1783 //  inst->_num_reg_rd         = ;
     1779    inst->_num_reg_rb         = 0; //unnecessary
     1780    inst->_read_rc            = 0;
     1781    inst->_num_reg_rc         = 0; //unnecessary
     1782    inst->_write_rd           = 0;
     1783    inst->_num_reg_rd         = 0; //unnecessary
    17841784    inst->_write_re           = 1;
    17851785    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    17891789//  inst->_branch_stack_write = ;
    17901790//  inst->_branch_direction   = ;
    1791 //  inst->_address_next       = ;
     1791//  inst->_address_next       = ; // already define : PC+4
    17921792    inst->_no_execute         = 0;
    17931793    inst->_event_type         = EVENT_TYPE_NONE;
     
    18011801    inst->_operation          = instruction_information(INSTRUCTION_L_SFGES)._operation; //OPERATION_TEST_L_SFGES;
    18021802    inst->_has_immediat       = 0;
    1803 //  inst->_immediat           = ;
    1804     inst->_read_ra            = 1;
    1805     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1806     inst->_read_rb            = 1;
    1807     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1808     inst->_read_rc            = 0;
    1809 //  inst->_num_reg_rc         = ;
    1810     inst->_write_rd           = 0;
    1811 //  inst->_num_reg_rd         = ;
     1803    inst->_immediat           = 0; // unnecessary
     1804    inst->_read_ra            = 1;
     1805    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1806    inst->_read_rb            = 1;
     1807    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1808    inst->_read_rc            = 0;
     1809    inst->_num_reg_rc         = 0; //unnecessary
     1810    inst->_write_rd           = 0;
     1811    inst->_num_reg_rd         = 0; //unnecessary
    18121812    inst->_write_re           = 1;
    18131813    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    18171817//  inst->_branch_stack_write = ;
    18181818//  inst->_branch_direction   = ;
    1819 //  inst->_address_next       = ;
     1819//  inst->_address_next       = ; // already define : PC+4
    18201820    inst->_no_execute         = 0;
    18211821    inst->_event_type         = EVENT_TYPE_NONE;
     
    18331833    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    18341834    inst->_read_rb            = 0;
    1835 //  inst->_num_reg_rb         = ;
    1836     inst->_read_rc            = 0;
    1837 //  inst->_num_reg_rc         = ;
    1838     inst->_write_rd           = 0;
    1839 //  inst->_num_reg_rd         = ;
     1835    inst->_num_reg_rb         = 0; //unnecessary
     1836    inst->_read_rc            = 0;
     1837    inst->_num_reg_rc         = 0; //unnecessary
     1838    inst->_write_rd           = 0;
     1839    inst->_num_reg_rd         = 0; //unnecessary
    18401840    inst->_write_re           = 1;
    18411841    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    18451845//  inst->_branch_stack_write = ;
    18461846//  inst->_branch_direction   = ;
    1847 //  inst->_address_next       = ;
     1847//  inst->_address_next       = ; // already define : PC+4
    18481848    inst->_no_execute         = 0;
    18491849    inst->_event_type         = EVENT_TYPE_NONE;
     
    18571857    inst->_operation          = instruction_information(INSTRUCTION_L_SFGEU)._operation; //OPERATION_TEST_L_SFGEU;
    18581858    inst->_has_immediat       = 0;
    1859 //  inst->_immediat           = ;
    1860     inst->_read_ra            = 1;
    1861     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1862     inst->_read_rb            = 1;
    1863     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1864     inst->_read_rc            = 0;
    1865 //  inst->_num_reg_rc         = ;
    1866     inst->_write_rd           = 0;
    1867 //  inst->_num_reg_rd         = ;
     1859    inst->_immediat           = 0; // unnecessary
     1860    inst->_read_ra            = 1;
     1861    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1862    inst->_read_rb            = 1;
     1863    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1864    inst->_read_rc            = 0;
     1865    inst->_num_reg_rc         = 0; //unnecessary
     1866    inst->_write_rd           = 0;
     1867    inst->_num_reg_rd         = 0; //unnecessary
    18681868    inst->_write_re           = 1;
    18691869    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    18731873//  inst->_branch_stack_write = ;
    18741874//  inst->_branch_direction   = ;
    1875 //  inst->_address_next       = ;
     1875//  inst->_address_next       = ; // already define : PC+4
    18761876    inst->_no_execute         = 0;
    18771877    inst->_event_type         = EVENT_TYPE_NONE;
     
    18891889    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    18901890    inst->_read_rb            = 0;
    1891 //  inst->_num_reg_rb         = ;
    1892     inst->_read_rc            = 0;
    1893 //  inst->_num_reg_rc         = ;
    1894     inst->_write_rd           = 0;
    1895 //  inst->_num_reg_rd         = ;
     1891    inst->_num_reg_rb         = 0; //unnecessary
     1892    inst->_read_rc            = 0;
     1893    inst->_num_reg_rc         = 0; //unnecessary
     1894    inst->_write_rd           = 0;
     1895    inst->_num_reg_rd         = 0; //unnecessary
    18961896    inst->_write_re           = 1;
    18971897    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    19011901//  inst->_branch_stack_write = ;
    19021902//  inst->_branch_direction   = ;
    1903 //  inst->_address_next       = ;
     1903//  inst->_address_next       = ; // already define : PC+4
    19041904    inst->_no_execute         = 0;
    19051905    inst->_event_type         = EVENT_TYPE_NONE;
     
    19131913    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTS)._operation; //OPERATION_TEST_L_SFGTS;
    19141914    inst->_has_immediat       = 0;
    1915 //  inst->_immediat           = ;
    1916     inst->_read_ra            = 1;
    1917     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1918     inst->_read_rb            = 1;
    1919     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1920     inst->_read_rc            = 0;
    1921 //  inst->_num_reg_rc         = ;
    1922     inst->_write_rd           = 0;
    1923 //  inst->_num_reg_rd         = ;
     1915    inst->_immediat           = 0; // unnecessary
     1916    inst->_read_ra            = 1;
     1917    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1918    inst->_read_rb            = 1;
     1919    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1920    inst->_read_rc            = 0;
     1921    inst->_num_reg_rc         = 0; //unnecessary
     1922    inst->_write_rd           = 0;
     1923    inst->_num_reg_rd         = 0; //unnecessary
    19241924    inst->_write_re           = 1;
    19251925    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    19291929//  inst->_branch_stack_write = ;
    19301930//  inst->_branch_direction   = ;
    1931 //  inst->_address_next       = ;
     1931//  inst->_address_next       = ; // already define : PC+4
    19321932    inst->_no_execute         = 0;
    19331933    inst->_event_type         = EVENT_TYPE_NONE;
     
    19451945    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    19461946    inst->_read_rb            = 0;
    1947 //  inst->_num_reg_rb         = ;
    1948     inst->_read_rc            = 0;
    1949 //  inst->_num_reg_rc         = ;
    1950     inst->_write_rd           = 0;
    1951 //  inst->_num_reg_rd         = ;
     1947    inst->_num_reg_rb         = 0; //unnecessary
     1948    inst->_read_rc            = 0;
     1949    inst->_num_reg_rc         = 0; //unnecessary
     1950    inst->_write_rd           = 0;
     1951    inst->_num_reg_rd         = 0; //unnecessary
    19521952    inst->_write_re           = 1;
    19531953    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    19571957//  inst->_branch_stack_write = ;
    19581958//  inst->_branch_direction   = ;
    1959 //  inst->_address_next       = ;
     1959//  inst->_address_next       = ; // already define : PC+4
    19601960    inst->_no_execute         = 0;
    19611961    inst->_event_type         = EVENT_TYPE_NONE;
     
    19691969    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTU)._operation; //OPERATION_TEST_L_SFGTU;
    19701970    inst->_has_immediat       = 0;
    1971 //  inst->_immediat           = ;
    1972     inst->_read_ra            = 1;
    1973     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    1974     inst->_read_rb            = 1;
    1975     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    1976     inst->_read_rc            = 0;
    1977 //  inst->_num_reg_rc         = ;
    1978     inst->_write_rd           = 0;
    1979 //  inst->_num_reg_rd         = ;
     1971    inst->_immediat           = 0; // unnecessary
     1972    inst->_read_ra            = 1;
     1973    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     1974    inst->_read_rb            = 1;
     1975    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     1976    inst->_read_rc            = 0;
     1977    inst->_num_reg_rc         = 0; //unnecessary
     1978    inst->_write_rd           = 0;
     1979    inst->_num_reg_rd         = 0; //unnecessary
    19801980    inst->_write_re           = 1;
    19811981    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    19851985//  inst->_branch_stack_write = ;
    19861986//  inst->_branch_direction   = ;
    1987 //  inst->_address_next       = ;
     1987//  inst->_address_next       = ; // already define : PC+4
    19881988    inst->_no_execute         = 0;
    19891989    inst->_event_type         = EVENT_TYPE_NONE;
     
    20012001    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    20022002    inst->_read_rb            = 0;
    2003 //  inst->_num_reg_rb         = ;
    2004     inst->_read_rc            = 0;
    2005 //  inst->_num_reg_rc         = ;
    2006     inst->_write_rd           = 0;
    2007 //  inst->_num_reg_rd         = ;
     2003    inst->_num_reg_rb         = 0; //unnecessary
     2004    inst->_read_rc            = 0;
     2005    inst->_num_reg_rc         = 0; //unnecessary
     2006    inst->_write_rd           = 0;
     2007    inst->_num_reg_rd         = 0; //unnecessary
    20082008    inst->_write_re           = 1;
    20092009    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    20132013//  inst->_branch_stack_write = ;
    20142014//  inst->_branch_direction   = ;
    2015 //  inst->_address_next       = ;
     2015//  inst->_address_next       = ; // already define : PC+4
    20162016    inst->_no_execute         = 0;
    20172017    inst->_event_type         = EVENT_TYPE_NONE;
     
    20252025    inst->_operation          = instruction_information(INSTRUCTION_L_SFLES)._operation; //OPERATION_TEST_L_SFLES;
    20262026    inst->_has_immediat       = 0;
    2027 //  inst->_immediat           = ;
    2028     inst->_read_ra            = 1;
    2029     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2030     inst->_read_rb            = 1;
    2031     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2032     inst->_read_rc            = 0;
    2033 //  inst->_num_reg_rc         = ;
    2034     inst->_write_rd           = 0;
    2035 //  inst->_num_reg_rd         = ;
     2027    inst->_immediat           = 0; // unnecessary
     2028    inst->_read_ra            = 1;
     2029    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2030    inst->_read_rb            = 1;
     2031    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2032    inst->_read_rc            = 0;
     2033    inst->_num_reg_rc         = 0; //unnecessary
     2034    inst->_write_rd           = 0;
     2035    inst->_num_reg_rd         = 0; //unnecessary
    20362036    inst->_write_re           = 1;
    20372037    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    20412041//  inst->_branch_stack_write = ;
    20422042//  inst->_branch_direction   = ;
    2043 //  inst->_address_next       = ;
     2043//  inst->_address_next       = ; // already define : PC+4
    20442044    inst->_no_execute         = 0;
    20452045    inst->_event_type         = EVENT_TYPE_NONE;
     
    20572057    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    20582058    inst->_read_rb            = 0;
    2059 //  inst->_num_reg_rb         = ;
    2060     inst->_read_rc            = 0;
    2061 //  inst->_num_reg_rc         = ;
    2062     inst->_write_rd           = 0;
    2063 //  inst->_num_reg_rd         = ;
     2059    inst->_num_reg_rb         = 0; //unnecessary
     2060    inst->_read_rc            = 0;
     2061    inst->_num_reg_rc         = 0; //unnecessary
     2062    inst->_write_rd           = 0;
     2063    inst->_num_reg_rd         = 0; //unnecessary
    20642064    inst->_write_re           = 1;
    20652065    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    20692069//  inst->_branch_stack_write = ;
    20702070//  inst->_branch_direction   = ;
    2071 //  inst->_address_next       = ;
     2071//  inst->_address_next       = ; // already define : PC+4
    20722072    inst->_no_execute         = 0;
    20732073    inst->_event_type         = EVENT_TYPE_NONE;
     
    20812081    inst->_operation          = instruction_information(INSTRUCTION_L_SFLEU)._operation; //OPERATION_TEST_L_SFLEU;
    20822082    inst->_has_immediat       = 0;
    2083 //  inst->_immediat           = ;
    2084     inst->_read_ra            = 1;
    2085     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2086     inst->_read_rb            = 1;
    2087     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2088     inst->_read_rc            = 0;
    2089 //  inst->_num_reg_rc         = ;
    2090     inst->_write_rd           = 0;
    2091 //  inst->_num_reg_rd         = ;
     2083    inst->_immediat           = 0; // unnecessary
     2084    inst->_read_ra            = 1;
     2085    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2086    inst->_read_rb            = 1;
     2087    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2088    inst->_read_rc            = 0;
     2089    inst->_num_reg_rc         = 0; //unnecessary
     2090    inst->_write_rd           = 0;
     2091    inst->_num_reg_rd         = 0; //unnecessary
    20922092    inst->_write_re           = 1;
    20932093    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    20972097//  inst->_branch_stack_write = ;
    20982098//  inst->_branch_direction   = ;
    2099 //  inst->_address_next       = ;
     2099//  inst->_address_next       = ; // already define : PC+4
    21002100    inst->_no_execute         = 0;
    21012101    inst->_event_type         = EVENT_TYPE_NONE;
     
    21132113    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    21142114    inst->_read_rb            = 0;
    2115 //  inst->_num_reg_rb         = ;
    2116     inst->_read_rc            = 0;
    2117 //  inst->_num_reg_rc         = ;
    2118     inst->_write_rd           = 0;
    2119 //  inst->_num_reg_rd         = ;
     2115    inst->_num_reg_rb         = 0; //unnecessary
     2116    inst->_read_rc            = 0;
     2117    inst->_num_reg_rc         = 0; //unnecessary
     2118    inst->_write_rd           = 0;
     2119    inst->_num_reg_rd         = 0; //unnecessary
    21202120    inst->_write_re           = 1;
    21212121    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    21252125//  inst->_branch_stack_write = ;
    21262126//  inst->_branch_direction   = ;
    2127 //  inst->_address_next       = ;
     2127//  inst->_address_next       = ; // already define : PC+4
    21282128    inst->_no_execute         = 0;
    21292129    inst->_event_type         = EVENT_TYPE_NONE;
     
    21372137    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTS)._operation; //OPERATION_TEST_L_SFLTS;
    21382138    inst->_has_immediat       = 0;
    2139 //  inst->_immediat           = ;
    2140     inst->_read_ra            = 1;
    2141     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2142     inst->_read_rb            = 1;
    2143     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2144     inst->_read_rc            = 0;
    2145 //  inst->_num_reg_rc         = ;
    2146     inst->_write_rd           = 0;
    2147 //  inst->_num_reg_rd         = ;
     2139    inst->_immediat           = 0; // unnecessary
     2140    inst->_read_ra            = 1;
     2141    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2142    inst->_read_rb            = 1;
     2143    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2144    inst->_read_rc            = 0;
     2145    inst->_num_reg_rc         = 0; //unnecessary
     2146    inst->_write_rd           = 0;
     2147    inst->_num_reg_rd         = 0; //unnecessary
    21482148    inst->_write_re           = 1;
    21492149    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    21532153//  inst->_branch_stack_write = ;
    21542154//  inst->_branch_direction   = ;
    2155 //  inst->_address_next       = ;
     2155//  inst->_address_next       = ; // already define : PC+4
    21562156    inst->_no_execute         = 0;
    21572157    inst->_event_type         = EVENT_TYPE_NONE;
     
    21692169    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    21702170    inst->_read_rb            = 0;
    2171 //  inst->_num_reg_rb         = ;
    2172     inst->_read_rc            = 0;
    2173 //  inst->_num_reg_rc         = ;
    2174     inst->_write_rd           = 0;
    2175 //  inst->_num_reg_rd         = ;
     2171    inst->_num_reg_rb         = 0; //unnecessary
     2172    inst->_read_rc            = 0;
     2173    inst->_num_reg_rc         = 0; //unnecessary
     2174    inst->_write_rd           = 0;
     2175    inst->_num_reg_rd         = 0; //unnecessary
    21762176    inst->_write_re           = 1;
    21772177    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    21812181//  inst->_branch_stack_write = ;
    21822182//  inst->_branch_direction   = ;
    2183 //  inst->_address_next       = ;
     2183//  inst->_address_next       = ; // already define : PC+4
    21842184    inst->_no_execute         = 0;
    21852185    inst->_event_type         = EVENT_TYPE_NONE;
     
    21932193    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTU)._operation; //OPERATION_TEST_L_SFLTU;
    21942194    inst->_has_immediat       = 0;
    2195 //  inst->_immediat           = ;
    2196     inst->_read_ra            = 1;
    2197     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2198     inst->_read_rb            = 1;
    2199     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2200     inst->_read_rc            = 0;
    2201 //  inst->_num_reg_rc         = ;
    2202     inst->_write_rd           = 0;
    2203 //  inst->_num_reg_rd         = ;
     2195    inst->_immediat           = 0; // unnecessary
     2196    inst->_read_ra            = 1;
     2197    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2198    inst->_read_rb            = 1;
     2199    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2200    inst->_read_rc            = 0;
     2201    inst->_num_reg_rc         = 0; //unnecessary
     2202    inst->_write_rd           = 0;
     2203    inst->_num_reg_rd         = 0; //unnecessary
    22042204    inst->_write_re           = 1;
    22052205    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    22092209//  inst->_branch_stack_write = ;
    22102210//  inst->_branch_direction   = ;
    2211 //  inst->_address_next       = ;
     2211//  inst->_address_next       = ; // already define : PC+4
    22122212    inst->_no_execute         = 0;
    22132213    inst->_event_type         = EVENT_TYPE_NONE;
     
    22252225    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    22262226    inst->_read_rb            = 0;
    2227 //  inst->_num_reg_rb         = ;
    2228     inst->_read_rc            = 0;
    2229 //  inst->_num_reg_rc         = ;
    2230     inst->_write_rd           = 0;
    2231 //  inst->_num_reg_rd         = ;
     2227    inst->_num_reg_rb         = 0; //unnecessary
     2228    inst->_read_rc            = 0;
     2229    inst->_num_reg_rc         = 0; //unnecessary
     2230    inst->_write_rd           = 0;
     2231    inst->_num_reg_rd         = 0; //unnecessary
    22322232    inst->_write_re           = 1;
    22332233    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    22372237//  inst->_branch_stack_write = ;
    22382238//  inst->_branch_direction   = ;
    2239 //  inst->_address_next       = ;
     2239//  inst->_address_next       = ; // already define : PC+4
    22402240    inst->_no_execute         = 0;
    22412241    inst->_event_type         = EVENT_TYPE_NONE;
     
    22492249    inst->_operation          = instruction_information(INSTRUCTION_L_SFNE)._operation; //OPERATION_TEST_L_SFNE;
    22502250    inst->_has_immediat       = 0;
    2251 //  inst->_immediat           = ;
    2252     inst->_read_ra            = 1;
    2253     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2254     inst->_read_rb            = 1;
    2255     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2256     inst->_read_rc            = 0;
    2257 //  inst->_num_reg_rc         = ;
    2258     inst->_write_rd           = 0;
    2259 //  inst->_num_reg_rd         = ;
     2251    inst->_immediat           = 0; // unnecessary
     2252    inst->_read_ra            = 1;
     2253    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2254    inst->_read_rb            = 1;
     2255    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2256    inst->_read_rc            = 0;
     2257    inst->_num_reg_rc         = 0; //unnecessary
     2258    inst->_write_rd           = 0;
     2259    inst->_num_reg_rd         = 0; //unnecessary
    22602260    inst->_write_re           = 1;
    22612261    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    22652265//  inst->_branch_stack_write = ;
    22662266//  inst->_branch_direction   = ;
    2267 //  inst->_address_next       = ;
     2267//  inst->_address_next       = ; // already define : PC+4
    22682268    inst->_no_execute         = 0;
    22692269    inst->_event_type         = EVENT_TYPE_NONE;
     
    22812281    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    22822282    inst->_read_rb            = 0;
    2283 //  inst->_num_reg_rb         = ;
    2284     inst->_read_rc            = 0;
    2285 //  inst->_num_reg_rc         = ;
    2286     inst->_write_rd           = 0;
    2287 //  inst->_num_reg_rd         = ;
     2283    inst->_num_reg_rb         = 0; //unnecessary
     2284    inst->_read_rc            = 0;
     2285    inst->_num_reg_rc         = 0; //unnecessary
     2286    inst->_write_rd           = 0;
     2287    inst->_num_reg_rd         = 0; //unnecessary
    22882288    inst->_write_re           = 1;
    22892289    inst->_num_reg_re         = SPR_LOGIC_SR_F;
     
    22932293//  inst->_branch_stack_write = ;
    22942294//  inst->_branch_direction   = ;
    2295 //  inst->_address_next       = ;
     2295//  inst->_address_next       = ; // already define : PC+4
    22962296    inst->_no_execute         = 0;
    22972297    inst->_event_type         = EVENT_TYPE_NONE;
     
    23122312    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    23132313    inst->_read_rc            = 0;
    2314 //  inst->_num_reg_rc         = ;
    2315     inst->_write_rd           = 0;
    2316 //  inst->_num_reg_rd         = ;
    2317     inst->_write_re           = 0;
    2318 //  inst->_num_reg_re         = ;
     2314    inst->_num_reg_rc         = 0; //unnecessary
     2315    inst->_write_rd           = 0;
     2316    inst->_num_reg_rd         = 0; //unnecessary
     2317    inst->_write_re           = 0;
     2318    inst->_num_reg_re         = 0; //unnecessary
    23192319    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    23202320    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    23222322//  inst->_branch_stack_write = ;
    23232323//  inst->_branch_direction   = ;
    2324 //  inst->_address_next       = ;
     2324//  inst->_address_next       = ; // already define : PC+4
    23252325    inst->_no_execute         = 0;
    23262326    inst->_event_type         = EVENT_TYPE_NONE;
     
    23342334    inst->_operation          = instruction_information(INSTRUCTION_L_SLL)._operation; //OPERATION_SHIFT_L_SLL;
    23352335    inst->_has_immediat       = 0;
    2336 //  inst->_immediat           = ;
    2337     inst->_read_ra            = 1;
    2338     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2339     inst->_read_rb            = 1;
    2340     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2341     inst->_read_rc            = 0;
    2342 //  inst->_num_reg_rc         = ;
    2343     inst->_write_rd           = 1;
    2344     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2345     inst->_write_re           = 0;
    2346 //  inst->_num_reg_re         = ;
    2347     inst->_exception_use      = EXCEPTION_USE_NONE;
    2348     inst->_exception          = EXCEPTION_DECOD_NONE;
    2349 //  inst->_branch_condition   = ;
    2350 //  inst->_branch_stack_write = ;
    2351 //  inst->_branch_direction   = ;
    2352 //  inst->_address_next       = ;
     2336    inst->_immediat           = 0; // unnecessary
     2337    inst->_read_ra            = 1;
     2338    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2339    inst->_read_rb            = 1;
     2340    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2341    inst->_read_rc            = 0;
     2342    inst->_num_reg_rc         = 0; //unnecessary
     2343    inst->_write_rd           = 1;
     2344    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2345    inst->_write_re           = 0;
     2346    inst->_num_reg_re         = 0; //unnecessary
     2347    inst->_exception_use      = EXCEPTION_USE_NONE;
     2348    inst->_exception          = EXCEPTION_DECOD_NONE;
     2349//  inst->_branch_condition   = ;
     2350//  inst->_branch_stack_write = ;
     2351//  inst->_branch_direction   = ;
     2352//  inst->_address_next       = ; // already define : PC+4
    23532353    inst->_no_execute         = 0;
    23542354    inst->_event_type         = EVENT_TYPE_NONE;
     
    23662366    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    23672367    inst->_read_rb            = 0;
    2368 //  inst->_num_reg_rb         = ;
    2369     inst->_read_rc            = 0;
    2370 //  inst->_num_reg_rc         = ;
    2371     inst->_write_rd           = 1;
    2372     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2373     inst->_write_re           = 0;
    2374 //  inst->_num_reg_re         = ;
    2375     inst->_exception_use      = EXCEPTION_USE_NONE;
    2376     inst->_exception          = EXCEPTION_DECOD_NONE;
    2377 //  inst->_branch_condition   = ;
    2378 //  inst->_branch_stack_write = ;
    2379 //  inst->_branch_direction   = ;
    2380 //  inst->_address_next       = ;
     2368    inst->_num_reg_rb         = 0; //unnecessary
     2369    inst->_read_rc            = 0;
     2370    inst->_num_reg_rc         = 0; //unnecessary
     2371    inst->_write_rd           = 1;
     2372    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2373    inst->_write_re           = 0;
     2374    inst->_num_reg_re         = 0; //unnecessary
     2375    inst->_exception_use      = EXCEPTION_USE_NONE;
     2376    inst->_exception          = EXCEPTION_DECOD_NONE;
     2377//  inst->_branch_condition   = ;
     2378//  inst->_branch_stack_write = ;
     2379//  inst->_branch_direction   = ;
     2380//  inst->_address_next       = ; // already define : PC+4
    23812381    inst->_no_execute         = 0;
    23822382    inst->_event_type         = EVENT_TYPE_NONE;
     
    23902390    inst->_operation          = instruction_information(INSTRUCTION_L_SRA)._operation; //OPERATION_SHIFT_L_SRA;
    23912391    inst->_has_immediat       = 0;
    2392 //  inst->_immediat           = ;
    2393     inst->_read_ra            = 1;
    2394     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2395     inst->_read_rb            = 1;
    2396     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2397     inst->_read_rc            = 0;
    2398 //  inst->_num_reg_rc         = ;
    2399     inst->_write_rd           = 1;
    2400     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2401     inst->_write_re           = 0;
    2402 //  inst->_num_reg_re         = ;
    2403     inst->_exception_use      = EXCEPTION_USE_NONE;
    2404     inst->_exception          = EXCEPTION_DECOD_NONE;
    2405 //  inst->_branch_condition   = ;
    2406 //  inst->_branch_stack_write = ;
    2407 //  inst->_branch_direction   = ;
    2408 //  inst->_address_next       = ;
     2392    inst->_immediat           = 0; // unnecessary
     2393    inst->_read_ra            = 1;
     2394    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2395    inst->_read_rb            = 1;
     2396    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2397    inst->_read_rc            = 0;
     2398    inst->_num_reg_rc         = 0; //unnecessary
     2399    inst->_write_rd           = 1;
     2400    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2401    inst->_write_re           = 0;
     2402    inst->_num_reg_re         = 0; //unnecessary
     2403    inst->_exception_use      = EXCEPTION_USE_NONE;
     2404    inst->_exception          = EXCEPTION_DECOD_NONE;
     2405//  inst->_branch_condition   = ;
     2406//  inst->_branch_stack_write = ;
     2407//  inst->_branch_direction   = ;
     2408//  inst->_address_next       = ; // already define : PC+4
    24092409    inst->_no_execute         = 0;
    24102410    inst->_event_type         = EVENT_TYPE_NONE;
     
    24222422    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    24232423    inst->_read_rb            = 0;
    2424 //  inst->_num_reg_rb         = ;
    2425     inst->_read_rc            = 0;
    2426 //  inst->_num_reg_rc         = ;
    2427     inst->_write_rd           = 1;
    2428     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2429     inst->_write_re           = 0;
    2430 //  inst->_num_reg_re         = ;
    2431     inst->_exception_use      = EXCEPTION_USE_NONE;
    2432     inst->_exception          = EXCEPTION_DECOD_NONE;
    2433 //  inst->_branch_condition   = ;
    2434 //  inst->_branch_stack_write = ;
    2435 //  inst->_branch_direction   = ;
    2436 //  inst->_address_next       = ;
     2424    inst->_num_reg_rb         = 0; //unnecessary
     2425    inst->_read_rc            = 0;
     2426    inst->_num_reg_rc         = 0; //unnecessary
     2427    inst->_write_rd           = 1;
     2428    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2429    inst->_write_re           = 0;
     2430    inst->_num_reg_re         = 0; //unnecessary
     2431    inst->_exception_use      = EXCEPTION_USE_NONE;
     2432    inst->_exception          = EXCEPTION_DECOD_NONE;
     2433//  inst->_branch_condition   = ;
     2434//  inst->_branch_stack_write = ;
     2435//  inst->_branch_direction   = ;
     2436//  inst->_address_next       = ; // already define : PC+4
    24372437    inst->_no_execute         = 0;
    24382438    inst->_event_type         = EVENT_TYPE_NONE;
     
    24462446    inst->_operation          = instruction_information(INSTRUCTION_L_SRL)._operation; //OPERATION_SHIFT_L_SRL;
    24472447    inst->_has_immediat       = 0;
    2448 //  inst->_immediat           = ;
    2449     inst->_read_ra            = 1;
    2450     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2451     inst->_read_rb            = 1;
    2452     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2453     inst->_read_rc            = 0;
    2454 //  inst->_num_reg_rc         = ;
    2455     inst->_write_rd           = 1;
    2456     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2457     inst->_write_re           = 0;
    2458 //  inst->_num_reg_re         = ;
    2459     inst->_exception_use      = EXCEPTION_USE_NONE;
    2460     inst->_exception          = EXCEPTION_DECOD_NONE;
    2461 //  inst->_branch_condition   = ;
    2462 //  inst->_branch_stack_write = ;
    2463 //  inst->_branch_direction   = ;
    2464 //  inst->_address_next       = ;
     2448    inst->_immediat           = 0; // unnecessary
     2449    inst->_read_ra            = 1;
     2450    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2451    inst->_read_rb            = 1;
     2452    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2453    inst->_read_rc            = 0;
     2454    inst->_num_reg_rc         = 0; //unnecessary
     2455    inst->_write_rd           = 1;
     2456    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2457    inst->_write_re           = 0;
     2458    inst->_num_reg_re         = 0; //unnecessary
     2459    inst->_exception_use      = EXCEPTION_USE_NONE;
     2460    inst->_exception          = EXCEPTION_DECOD_NONE;
     2461//  inst->_branch_condition   = ;
     2462//  inst->_branch_stack_write = ;
     2463//  inst->_branch_direction   = ;
     2464//  inst->_address_next       = ; // already define : PC+4
    24652465    inst->_no_execute         = 0;
    24662466    inst->_event_type         = EVENT_TYPE_NONE;
     
    24782478    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    24792479    inst->_read_rb            = 0;
    2480 //  inst->_num_reg_rb         = ;
    2481     inst->_read_rc            = 0;
    2482 //  inst->_num_reg_rc         = ;
    2483     inst->_write_rd           = 1;
    2484     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2485     inst->_write_re           = 0;
    2486 //  inst->_num_reg_re         = ;
    2487     inst->_exception_use      = EXCEPTION_USE_NONE;
    2488     inst->_exception          = EXCEPTION_DECOD_NONE;
    2489 //  inst->_branch_condition   = ;
    2490 //  inst->_branch_stack_write = ;
    2491 //  inst->_branch_direction   = ;
    2492 //  inst->_address_next       = ;
     2480    inst->_num_reg_rb         = 0; //unnecessary
     2481    inst->_read_rc            = 0;
     2482    inst->_num_reg_rc         = 0; //unnecessary
     2483    inst->_write_rd           = 1;
     2484    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2485    inst->_write_re           = 0;
     2486    inst->_num_reg_re         = 0; //unnecessary
     2487    inst->_exception_use      = EXCEPTION_USE_NONE;
     2488    inst->_exception          = EXCEPTION_DECOD_NONE;
     2489//  inst->_branch_condition   = ;
     2490//  inst->_branch_stack_write = ;
     2491//  inst->_branch_direction   = ;
     2492//  inst->_address_next       = ; // already define : PC+4
    24932493    inst->_no_execute         = 0;
    24942494    inst->_event_type         = EVENT_TYPE_NONE;
     
    25022502    inst->_operation          = instruction_information(INSTRUCTION_L_SUB)._operation; //OPERATION_ALU_L_SUB;
    25032503    inst->_has_immediat       = 0;
    2504 //  inst->_immediat           = ;
    2505     inst->_read_ra            = 1;
    2506     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2507     inst->_read_rb            = 1;
    2508     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2509     inst->_read_rc            = 0;
    2510 //  inst->_num_reg_rc         = ;
     2504    inst->_immediat           = 0; // unnecessary
     2505    inst->_read_ra            = 1;
     2506    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2507    inst->_read_rb            = 1;
     2508    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2509    inst->_read_rc            = 0;
     2510    inst->_num_reg_rc         = 0; //unnecessary
    25112511    inst->_write_rd           = 1;
    25122512    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     
    25182518//  inst->_branch_stack_write = ;
    25192519//  inst->_branch_direction   = ;
    2520 //  inst->_address_next       = ;
     2520//  inst->_address_next       = ; // already define : PC+4
    25212521    inst->_no_execute         = 0;
    25222522    inst->_event_type         = EVENT_TYPE_NONE;
     
    25372537    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    25382538    inst->_read_rc            = 0;
    2539 //  inst->_num_reg_rc         = ;
    2540     inst->_write_rd           = 0;
    2541 //  inst->_num_reg_rd         = ;
    2542     inst->_write_re           = 0;
    2543 //  inst->_num_reg_re         = ;
     2539    inst->_num_reg_rc         = 0; //unnecessary
     2540    inst->_write_rd           = 0;
     2541    inst->_num_reg_rd         = 0; //unnecessary
     2542    inst->_write_re           = 0;
     2543    inst->_num_reg_re         = 0; //unnecessary
    25442544    inst->_exception_use      = EXCEPTION_USE_MEMORY_WITH_ALIGNMENT;
    25452545    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    25472547//  inst->_branch_stack_write = ;
    25482548//  inst->_branch_direction   = ;
    2549 //  inst->_address_next       = ;
     2549//  inst->_address_next       = ; // already define : PC+4
    25502550    inst->_no_execute         = 0;
    25512551    inst->_event_type         = EVENT_TYPE_NONE;
     
    25672567//  inst->_immediat           = EXTENDZ(inst->_instruction,16);
    25682568    inst->_has_immediat       = 0;
    2569 //  inst->_immediat           = ;
     2569    inst->_immediat           = 0; // unnecessary
    25702570    inst->_read_ra            = 0;
    2571 //  inst->_num_reg_ra         = ;
    2572     inst->_read_rb            = 0;
    2573 //  inst->_num_reg_rb         = ;
    2574     inst->_read_rc            = 0;
    2575 //  inst->_num_reg_rc         = ;
    2576     inst->_write_rd           = 0;
    2577 //  inst->_num_reg_rd         = ;
    2578     inst->_write_re           = 0;
    2579 //  inst->_num_reg_re         = ;
     2571    inst->_num_reg_ra         = 0; //unnecessary
     2572    inst->_read_rb            = 0;
     2573    inst->_num_reg_rb         = 0; //unnecessary
     2574    inst->_read_rc            = 0;
     2575    inst->_num_reg_rc         = 0; //unnecessary
     2576    inst->_write_rd           = 0;
     2577    inst->_num_reg_rd         = 0; //unnecessary
     2578    inst->_write_re           = 0;
     2579    inst->_num_reg_re         = 0; //unnecessary
    25802580    inst->_exception_use      = EXCEPTION_USE_SYSCALL;
    25812581    inst->_exception          = EXCEPTION_SYSCALL;
     
    25902590
    25912591
    2592 //  inst->_address_next       = ; // don't change
     2592//  inst->_address_next       = ; // already define : PC+4 // don't change
    25932593    inst->_no_execute         = 1;
    25942594    inst->_event_type         = EVENT_TYPE_EXCEPTION;
     
    26112611    inst->_immediat           = EXTENDZ(inst->_instruction,16);
    26122612    inst->_read_ra            = 0;
    2613 //  inst->_num_reg_ra         = ;
    2614     inst->_read_rb            = 0;
    2615 //  inst->_num_reg_rb         = ;
     2613    inst->_num_reg_ra         = 0; //unnecessary
     2614    inst->_read_rb            = 0;
     2615    inst->_num_reg_rb         = 0; //unnecessary
    26162616    inst->_read_rc            = 0; // read all SR
    2617 //  inst->_num_reg_rc         = ;
    2618     inst->_write_rd           = 0;
    2619 //  inst->_num_reg_rd         = ;
    2620     inst->_write_re           = 0;
    2621 //  inst->_num_reg_re         = ;
     2617    inst->_num_reg_rc         = 0; //unnecessary
     2618    inst->_write_rd           = 0;
     2619    inst->_num_reg_rd         = 0; //unnecessary
     2620    inst->_write_re           = 0;
     2621    inst->_num_reg_re         = 0; //unnecessary
    26222622    inst->_exception_use      = EXCEPTION_USE_TRAP;
    26232623    inst->_exception          = EXCEPTION_DECOD_NONE;
     
    26252625//  inst->_branch_stack_write = ;
    26262626//  inst->_branch_direction   = ;
    2627 //  inst->_address_next       = ;
     2627//  inst->_address_next       = ; // already define : PC+4
    26282628    inst->_no_execute         = 1;
    26292629    inst->_event_type         = EVENT_TYPE_NONE;
     
    26382638    inst->_operation          = instruction_information(INSTRUCTION_L_XOR)._operation; //OPERATION_ALU_L_XOR;
    26392639    inst->_has_immediat       = 0;
    2640 //  inst->_immediat           = ;
    2641     inst->_read_ra            = 1;
    2642     inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    2643     inst->_read_rb            = 1;
    2644     inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
    2645     inst->_read_rc            = 0;
    2646 //  inst->_num_reg_rc         = ;
    2647     inst->_write_rd           = 1;
    2648     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2649     inst->_write_re           = 0;
    2650 //  inst->_num_reg_re         = ;
    2651     inst->_exception_use      = EXCEPTION_USE_NONE;
    2652     inst->_exception          = EXCEPTION_DECOD_NONE;
    2653 //  inst->_branch_condition   = ;
    2654 //  inst->_branch_stack_write = ;
    2655 //  inst->_branch_direction   = ;
    2656 //  inst->_address_next       = ;
     2640    inst->_immediat           = 0; // unnecessary
     2641    inst->_read_ra            = 1;
     2642    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
     2643    inst->_read_rb            = 1;
     2644    inst->_num_reg_rb         = range<Tgeneral_address_t>(inst->_instruction,15,11);
     2645    inst->_read_rc            = 0;
     2646    inst->_num_reg_rc         = 0; //unnecessary
     2647    inst->_write_rd           = 1;
     2648    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2649    inst->_write_re           = 0;
     2650    inst->_num_reg_re         = 0; //unnecessary
     2651    inst->_exception_use      = EXCEPTION_USE_NONE;
     2652    inst->_exception          = EXCEPTION_DECOD_NONE;
     2653//  inst->_branch_condition   = ;
     2654//  inst->_branch_stack_write = ;
     2655//  inst->_branch_direction   = ;
     2656//  inst->_address_next       = ; // already define : PC+4
    26572657    inst->_no_execute         = 0;
    26582658    inst->_event_type         = EVENT_TYPE_NONE;
     
    26702670    inst->_num_reg_ra         = range<Tgeneral_address_t>(inst->_instruction,20,16);
    26712671    inst->_read_rb            = 0;
    2672 //  inst->_num_reg_rb         = ;
    2673     inst->_read_rc            = 0;
    2674 //  inst->_num_reg_rc         = ;
    2675     inst->_write_rd           = 1;
    2676     inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
    2677     inst->_write_re           = 0;
    2678 //  inst->_num_reg_re         = ;
    2679     inst->_exception_use      = EXCEPTION_USE_NONE;
    2680     inst->_exception          = EXCEPTION_DECOD_NONE;
    2681 //  inst->_branch_condition   = ;
    2682 //  inst->_branch_stack_write = ;
    2683 //  inst->_branch_direction   = ;
    2684 //  inst->_address_next       = ;
     2672    inst->_num_reg_rb         = 0; //unnecessary
     2673    inst->_read_rc            = 0;
     2674    inst->_num_reg_rc         = 0; //unnecessary
     2675    inst->_write_rd           = 1;
     2676    inst->_num_reg_rd         = range<Tgeneral_address_t>(inst->_instruction,25,21);
     2677    inst->_write_re           = 0;
     2678    inst->_num_reg_re         = 0; //unnecessary
     2679    inst->_exception_use      = EXCEPTION_USE_NONE;
     2680    inst->_exception          = EXCEPTION_DECOD_NONE;
     2681//  inst->_branch_condition   = ;
     2682//  inst->_branch_stack_write = ;
     2683//  inst->_branch_direction   = ;
     2684//  inst->_address_next       = ; // already define : PC+4
    26852685    inst->_no_execute         = 0;
    26862686    inst->_event_type         = EVENT_TYPE_NONE;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/SelfTest/src/test.cpp

    r88 r97  
    7575  ALLOC1_SC_SIGNAL(out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL             ,"out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL             ",Tcontrol_t,_param->_nb_context);
    7676  ALLOC1_SC_SIGNAL(out_EVENT_IFETCH_UNIT_IS_DS_TAKE                   ,"out_EVENT_IFETCH_UNIT_IS_DS_TAKE                   ",Tcontrol_t,_param->_nb_context);
     77  ALLOC1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_VAL                      ,"out_EVENT_PREDICTION_UNIT_VAL                      ",Tcontrol_t,_param->_nb_context);
     78  ALLOC1_SC_SIGNAL( in_EVENT_PREDICTION_UNIT_ACK                      ," in_EVENT_PREDICTION_UNIT_ACK                      ",Tcontrol_t,_param->_nb_context);
     79  ALLOC1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_TYPE                     ,"out_EVENT_PREDICTION_UNIT_TYPE                     ",Tevent_type_t,_param->_nb_context);
     80  ALLOC1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_DEPTH                    ,"out_EVENT_PREDICTION_UNIT_DEPTH                    ",Tdepth_t  ,_param->_nb_context);
    7781  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_VAL                        ," in_EVENT_CONTEXT_STATE_VAL                        ",Tcontrol_t,_param->_nb_context);
    7882  ALLOC1_SC_SIGNAL(out_EVENT_CONTEXT_STATE_ACK                        ,"out_EVENT_CONTEXT_STATE_ACK                        ",Tcontrol_t,_param->_nb_context);
     
    8185  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL           ," in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL           ",Tcontrol_t,_param->_nb_context);
    8286  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_IS_DS_TAKE                 ," in_EVENT_CONTEXT_STATE_IS_DS_TAKE                 ",Tcontrol_t,_param->_nb_context);
     87  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                       ," in_EVENT_CONTEXT_STATE_TYPE                       ",Tevent_type_t,_param->_nb_context);
     88  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                      ," in_EVENT_CONTEXT_STATE_DEPTH                      ",Tdepth_t  ,_param->_nb_context);
    8389
    8490  ALLOC1_SC_SIGNAL(out_DEPTH_CURRENT                                  ,"out_DEPTH_CURRENT                                  ",Tdepth_t  ,_param->_nb_context);
     
    132138  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL               ,_param->_nb_context);
    133139  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_IFETCH_UNIT_IS_DS_TAKE                     ,_param->_nb_context);
     140  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_PREDICTION_UNIT_VAL                        ,_param->_nb_context);
     141  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_PREDICTION_UNIT_ACK                        ,_param->_nb_context);
     142  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_PREDICTION_UNIT_TYPE                       ,_param->_nb_context);
     143  if (_param->_have_port_depth)
     144  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_PREDICTION_UNIT_DEPTH                      ,_param->_nb_context);
    134145  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_VAL                          ,_param->_nb_context);
    135146  INSTANCE1_SC_SIGNAL(_Front_end_Glue,out_EVENT_CONTEXT_STATE_ACK                          ,_param->_nb_context);
     
    138149  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL             ,_param->_nb_context);
    139150  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_IS_DS_TAKE                   ,_param->_nb_context);
     151  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_TYPE                         ,_param->_nb_context);
     152  if (_param->_have_port_depth)
     153  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context);
    140154
    141155  for (uint32_t i=0; i<_param->_nb_context; ++i)
     
    230244  DELETE1_SC_SIGNAL(out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL               ,_param->_nb_context);
    231245  DELETE1_SC_SIGNAL(out_EVENT_IFETCH_UNIT_IS_DS_TAKE                     ,_param->_nb_context);
     246  DELETE1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_VAL                        ,_param->_nb_context);
     247  DELETE1_SC_SIGNAL( in_EVENT_PREDICTION_UNIT_ACK                        ,_param->_nb_context);
     248  DELETE1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_TYPE                       ,_param->_nb_context);
     249  DELETE1_SC_SIGNAL(out_EVENT_PREDICTION_UNIT_DEPTH                      ,_param->_nb_context);
    232250  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_VAL                          ,_param->_nb_context);
    233251  DELETE1_SC_SIGNAL(out_EVENT_CONTEXT_STATE_ACK                          ,_param->_nb_context);
     
    236254  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL             ,_param->_nb_context);
    237255  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_IS_DS_TAKE                   ,_param->_nb_context);
     256  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                         ,_param->_nb_context);
     257  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context);
    238258
    239259  DELETE1_SC_SIGNAL(out_DEPTH_MIN                                        ,_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h

    r88 r97  
    9797  public    : SC_OUT(Tcontrol_t           )  ** out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL                ;//[nb_context]
    9898  public    : SC_OUT(Tcontrol_t           )  ** out_EVENT_IFETCH_UNIT_IS_DS_TAKE                      ;//[nb_context]
     99
     100  public    : SC_OUT(Tcontrol_t           )  ** out_EVENT_PREDICTION_UNIT_VAL                         ;//[nb_context]
     101  public    : SC_IN (Tcontrol_t           )  **  in_EVENT_PREDICTION_UNIT_ACK                         ;//[nb_context]
     102  public    : SC_OUT(Tevent_type_t        )  ** out_EVENT_PREDICTION_UNIT_TYPE                        ;//[nb_context]
     103  public    : SC_OUT(Tdepth_t             )  ** out_EVENT_PREDICTION_UNIT_DEPTH                       ;//[nb_context]
    99104                                           
    100105  public    : SC_IN (Tcontrol_t           )  **  in_EVENT_CONTEXT_STATE_VAL                           ;//[nb_context]
     
    104109  public    : SC_IN (Tcontrol_t           )  **  in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL              ;//[nb_context]
    105110  public    : SC_IN (Tcontrol_t           )  **  in_EVENT_CONTEXT_STATE_IS_DS_TAKE                    ;//[nb_context]
     111  public    : SC_IN (Tevent_type_t        )  **  in_EVENT_CONTEXT_STATE_TYPE                          ;//[nb_context]
     112  public    : SC_IN (Tdepth_t             )  **  in_EVENT_CONTEXT_STATE_DEPTH                         ;//[nb_context]
    106113
    107114    // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp

    r88 r97  
    138138//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
    139139        for (uint32_t i=0; i<_param->_nb_context; ++i)
    140           sensitive << (*( in_EVENT_ACK                            [i]))
    141                     << (*( in_EVENT_IFETCH_UNIT_ACK                [i]))
    142                     << (*( in_EVENT_CONTEXT_STATE_VAL              [i]))
    143                     << (*( in_EVENT_CONTEXT_STATE_ADDRESS          [i]))
    144                     << (*( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT     [i]))
    145                     << (*( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL [i]))
    146                     << (*( in_EVENT_CONTEXT_STATE_IS_DS_TAKE       [i]));
     140          {
     141            sensitive << (*( in_EVENT_ACK                            [i]))
     142                      << (*( in_EVENT_IFETCH_UNIT_ACK                [i]))
     143                      << (*( in_EVENT_PREDICTION_UNIT_ACK            [i]))
     144                      << (*( in_EVENT_CONTEXT_STATE_VAL              [i]))
     145                      << (*( in_EVENT_CONTEXT_STATE_ADDRESS          [i]))
     146                      << (*( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT     [i]))
     147                      << (*( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL [i]))
     148                      << (*( in_EVENT_CONTEXT_STATE_IS_DS_TAKE       [i]))
     149                      << (*( in_EVENT_CONTEXT_STATE_TYPE             [i]));
     150            if (_param->_have_port_depth)
     151            sensitive << (*( in_EVENT_CONTEXT_STATE_DEPTH            [i]));
     152          }
    147153
    148154# ifdef SYSTEMCASS_SPECIFIC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_allocation.cpp

    r88 r97  
    105105      ALLOC1_SIGNAL_OUT (out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL                ,"IFETCH_UNIT_ADDRESS_NEXT_VAL"  ,Tcontrol_t           ,1);
    106106      ALLOC1_SIGNAL_OUT (out_EVENT_IFETCH_UNIT_IS_DS_TAKE                      ,"IFETCH_UNIT_IS_DS_TAKE"        ,Tcontrol_t           ,1);
     107
     108      ALLOC1_SIGNAL_OUT (out_EVENT_PREDICTION_UNIT_VAL                         ,"PREDICTION_UNIT_VAL"           ,Tcontrol_t           ,1);
     109      ALLOC1_SIGNAL_IN  ( in_EVENT_PREDICTION_UNIT_ACK                         ,"PREDICTION_UNIT_ACK"           ,Tcontrol_t           ,1);
     110      ALLOC1_SIGNAL_OUT (out_EVENT_PREDICTION_UNIT_TYPE                        ,"PREDICTION_UNIT_TYPE"          ,Tevent_type_t        ,_param->_size_event_type);
     111      ALLOC1_SIGNAL_OUT (out_EVENT_PREDICTION_UNIT_DEPTH                       ,"PREDICTION_UNIT_DEPTH"         ,Tdepth_t             ,_param->_size_depth);
    107112                                                                                                           
    108113      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_VAL                           ,"CONTEXT_STATE_VAL"             ,Tcontrol_t           ,1);
     
    112117      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL              ,"CONTEXT_STATE_ADDRESS_NEXT_VAL",Tcontrol_t           ,1);
    113118      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_IS_DS_TAKE                    ,"CONTEXT_STATE_IS_DS_TAKE"      ,Tcontrol_t           ,1);
     119      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_TYPE                          ,"CONTEXT_STATE_TYPE"            ,Tevent_type_t        ,_param->_size_event_type);
     120      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_DEPTH                         ,"CONTEXT_STATE_DEPTH"           ,Tdepth_t             ,_param->_size_depth);
     121
    114122    }
    115123
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_deallocation.cpp

    r88 r97  
    5555        DELETE1_SIGNAL(out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL               ,_param->_nb_context,1);
    5656        DELETE1_SIGNAL(out_EVENT_IFETCH_UNIT_IS_DS_TAKE                     ,_param->_nb_context,1);
     57
     58        DELETE1_SIGNAL(out_EVENT_PREDICTION_UNIT_VAL                        ,_param->_nb_context,1);
     59        DELETE1_SIGNAL( in_EVENT_PREDICTION_UNIT_ACK                        ,_param->_nb_context,1);
     60        DELETE1_SIGNAL(out_EVENT_PREDICTION_UNIT_TYPE                       ,_param->_nb_context,_param->_size_event_type);
     61        DELETE1_SIGNAL(out_EVENT_PREDICTION_UNIT_DEPTH                      ,_param->_nb_context,_param->_size_depth);
     62
    5763        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_VAL                          ,_param->_nb_context,1);
    5864        DELETE1_SIGNAL(out_EVENT_CONTEXT_STATE_ACK                          ,_param->_nb_context,1);
     
    6167        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL             ,_param->_nb_context,1);
    6268        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_IS_DS_TAKE                   ,_param->_nb_context,1);
     69        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                         ,_param->_nb_context,_param->_size_event_type);
     70        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context,_param->_size_depth);
    6371       
    6472        DELETE1_SIGNAL(out_DEPTH_MIN                                        ,_param->_nb_context,_param->_size_depth  );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_genMealy_event.cpp

    r88 r97  
    2525    for (uint32_t i=0; i<_param->_nb_context; ++i)
    2626      {
    27         Taddress_t address = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS [i]);
     27        Taddress_t    address = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS [i]);
    2828        PORT_WRITE(out_EVENT_ADDRESS             [i],address);
    2929        PORT_WRITE(out_EVENT_IFETCH_UNIT_ADDRESS [i],address);
    3030
    31         Taddress_t address_next = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS_NEXT [i]);
     31        Taddress_t    address_next = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS_NEXT [i]);
    3232        PORT_WRITE(out_EVENT_ADDRESS_NEXT             [i],address_next);
    3333        PORT_WRITE(out_EVENT_IFETCH_UNIT_ADDRESS_NEXT [i],address_next);
    3434
    35         Tcontrol_t address_next_val = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL [i]);
     35        Tcontrol_t    address_next_val = PORT_READ(in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL [i]);
    3636        PORT_WRITE(out_EVENT_ADDRESS_NEXT_VAL             [i],address_next_val);
    3737        PORT_WRITE(out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL [i],address_next_val);
    3838
    39         Tcontrol_t is_ds_take = PORT_READ(in_EVENT_CONTEXT_STATE_IS_DS_TAKE [i]);
     39        Tcontrol_t    is_ds_take = PORT_READ(in_EVENT_CONTEXT_STATE_IS_DS_TAKE [i]);
    4040        PORT_WRITE(out_EVENT_IS_DS_TAKE             [i],is_ds_take);
    4141        PORT_WRITE(out_EVENT_IFETCH_UNIT_IS_DS_TAKE [i],is_ds_take);
    4242
    43         Tcontrol_t val = PORT_READ(in_EVENT_CONTEXT_STATE_VAL [i]);
    44         PORT_WRITE(out_EVENT_VAL             [i],val);
    45         PORT_WRITE(out_EVENT_IFETCH_UNIT_VAL [i],val);
     43        Tevent_type_t event_type = PORT_READ(in_EVENT_CONTEXT_STATE_TYPE [i]);
     44        PORT_WRITE(out_EVENT_PREDICTION_UNIT_TYPE [i],event_type);
     45       
     46        if (_param->_have_port_depth)
     47          {
     48        Tdepth_t      depth = PORT_READ(in_EVENT_CONTEXT_STATE_DEPTH [i]);
     49        PORT_WRITE(out_EVENT_PREDICTION_UNIT_DEPTH [i],depth);
     50          }
     51       
    4652
    47         Tcontrol_t ack = (PORT_READ(in_EVENT_ACK             [i]) and
    48                           PORT_READ(in_EVENT_IFETCH_UNIT_ACK [i]));
    49         PORT_WRITE(out_EVENT_CONTEXT_STATE_ACK [i],ack);
     53        Tcontrol_t ack                 = PORT_READ(in_EVENT_ACK                 [i]);
     54        Tcontrol_t ifetch_unit_ack     = PORT_READ(in_EVENT_IFETCH_UNIT_ACK     [i]);
     55        Tcontrol_t prediction_unit_ack = PORT_READ(in_EVENT_PREDICTION_UNIT_ACK [i]);
     56        Tcontrol_t context_state_val   = PORT_READ(in_EVENT_CONTEXT_STATE_VAL   [i]);
     57
     58        Tcontrol_t val                 = (//ack                 and
     59                                            ifetch_unit_ack     and
     60                                            prediction_unit_ack and
     61                                            context_state_val   
     62                                          );
     63        Tcontrol_t ifetch_unit_val     = (  ack                 and
     64                                          //ifetch_unit_ack     and
     65                                            prediction_unit_ack and
     66                                            context_state_val   
     67                                            );
     68        Tcontrol_t prediction_unit_val = (  ack                 and
     69                                            ifetch_unit_ack     and
     70                                          //prediction_unit_ack and
     71                                            context_state_val   
     72                                            );
     73        Tcontrol_t context_state_ack   = (  ack                 and
     74                                            ifetch_unit_ack     and
     75                                            prediction_unit_ack // and
     76                                          //context_state_val   
     77                                            );
     78
     79        log_printf(TRACE,Front_end_Glue,FUNCTION,"  * val                 %d, ack                 %d",val                ,ack                );
     80        log_printf(TRACE,Front_end_Glue,FUNCTION,"  * ifetch_unit_val     %d, ifetch_unit_ack     %d",ifetch_unit_val    ,ifetch_unit_ack    );
     81        log_printf(TRACE,Front_end_Glue,FUNCTION,"  * prediction_unit_val %d, prediction_unit_ack %d",prediction_unit_val,prediction_unit_ack);
     82        log_printf(TRACE,Front_end_Glue,FUNCTION,"  * context_state_val   %d, context_state_ack   %d",context_state_val  ,context_state_ack  );
     83
     84
     85        PORT_WRITE(out_EVENT_VAL                 [i], val                );
     86        PORT_WRITE(out_EVENT_IFETCH_UNIT_VAL     [i], ifetch_unit_val    );
     87        PORT_WRITE(out_EVENT_PREDICTION_UNIT_VAL [i], prediction_unit_val);
     88        PORT_WRITE(out_EVENT_CONTEXT_STATE_ACK   [i], context_state_ack  );
    5089
    5190#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/SelfTest/src/test.cpp

    r95 r97  
    9494  ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_ADDRESS_DEST          ,"out_BRANCH_EVENT_ADDRESS_DEST          ",Taddress_t         ,_param->_nb_context);
    9595                                                                                                                         
    96   ALLOC1_SC_SIGNAL( in_EVENT_STATE                    ," in_EVENT_STATE                    ",Tevent_state_t     ,_param->_nb_context);
    97   ALLOC1_SC_SIGNAL( in_EVENT_TYPE                     ," in_EVENT_TYPE                     ",Tevent_type_t      ,_param->_nb_context);
    98   ALLOC1_SC_SIGNAL( in_EVENT_DEPTH                    ," in_EVENT_DEPTH                    ",Tdepth_t           ,_param->_nb_context);
     96  ALLOC1_SC_SIGNAL( in_EVENT_VAL                          ," in_EVENT_VAL                          ",Tcontrol_t         ,_param->_nb_context);
     97  ALLOC1_SC_SIGNAL(out_EVENT_ACK                          ,"out_EVENT_ACK                          ",Tcontrol_t         ,_param->_nb_context);
     98  ALLOC1_SC_SIGNAL( in_EVENT_TYPE                         ," in_EVENT_TYPE                         ",Tevent_type_t      ,_param->_nb_context);
     99  ALLOC1_SC_SIGNAL( in_EVENT_DEPTH                        ," in_EVENT_DEPTH                        ",Tdepth_t           ,_param->_nb_context);
    99100
    100101  ALLOC1_SC_SIGNAL(out_DEPTH_CURRENT                      ,"out_DEPTH_CURRENT                      ",Tdepth_t           ,_param->_nb_context);
     
    160161  INSTANCE1_SC_SIGNAL(_Prediction_unit,out_BRANCH_EVENT_ADDRESS_DEST          ,_param->_nb_context);
    161162
    162   INSTANCE1_SC_SIGNAL(_Prediction_unit, in_EVENT_STATE                        ,_param->_nb_context);
     163  INSTANCE1_SC_SIGNAL(_Prediction_unit, in_EVENT_VAL                          ,_param->_nb_context);
     164  INSTANCE1_SC_SIGNAL(_Prediction_unit,out_EVENT_ACK                          ,_param->_nb_context);
    163165  INSTANCE1_SC_SIGNAL(_Prediction_unit, in_EVENT_TYPE                         ,_param->_nb_context);
    164166  if (_param->_have_port_depth)
     
    364366  DELETE1_SC_SIGNAL(out_BRANCH_EVENT_ADDRESS_DEST     ,_param->_nb_context);
    365367
    366   DELETE1_SC_SIGNAL( in_EVENT_STATE                    ,_param->_nb_context);
     368  DELETE1_SC_SIGNAL( in_EVENT_VAL                      ,_param->_nb_context);
     369  DELETE1_SC_SIGNAL(out_EVENT_ACK                      ,_param->_nb_context);
    367370  DELETE1_SC_SIGNAL( in_EVENT_TYPE                     ,_param->_nb_context);
    368371  DELETE1_SC_SIGNAL( in_EVENT_DEPTH                    ,_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.deps

    r81 r97  
    2121
    2222Update_Prediction_Table_LIBRARY         =       -lUpdate_Prediction_Table       \
    23                                         $(Behavioural_LIBRARY) 
     23                                        $(Behavioural_LIBRARY)
    2424
    2525Update_Prediction_Table_DIR_LIBRARY             =       -L$(Update_Prediction_Table_DIR)/lib    \
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp

    r95 r97  
    4242
    4343#ifdef STATISTICS
    44   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
     44  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
    4545#endif
    4646
     
    137137  ALLOC1_SC_SIGNAL(out_UPDATE_RAS_PREDICTION_IFETCH   ,"out_UPDATE_RAS_PREDICTION_IFETCH   ",Tcontrol_t         ,_param->_nb_inst_update);
    138138
    139   ALLOC1_SC_SIGNAL( in_EVENT_STATE                    ," in_EVENT_STATE                    ",Tevent_state_t     ,_param->_nb_context);
     139  ALLOC1_SC_SIGNAL( in_EVENT_VAL                      ," in_EVENT_VAL                      ",Tcontrol_t         ,_param->_nb_context);
     140  ALLOC1_SC_SIGNAL(out_EVENT_ACK                      ,"out_EVENT_ACK                      ",Tcontrol_t         ,_param->_nb_context);
    140141  ALLOC1_SC_SIGNAL( in_EVENT_TYPE                     ," in_EVENT_TYPE                     ",Tevent_type_t      ,_param->_nb_context);
    141142  ALLOC1_SC_SIGNAL( in_EVENT_DEPTH                    ," in_EVENT_DEPTH                    ",Tdepth_t           ,_param->_nb_context);
     
    230231  INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_UPDATE_RAS_INDEX               ,_param->_nb_inst_update);
    231232  INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_UPDATE_RAS_PREDICTION_IFETCH   ,_param->_nb_inst_update);
    232   INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_EVENT_STATE                    ,_param->_nb_context);
     233  INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_EVENT_VAL                      ,_param->_nb_context);
     234  INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_EVENT_ACK                      ,_param->_nb_context);
    233235  INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_EVENT_TYPE                     ,_param->_nb_context);
    234236  if (_param->_have_port_depth)
     
    316318        in_UPDATE_ACK          [i]->write(0);
    317319      for (uint32_t i=0; i<_param->_nb_context; ++i)
    318         {
    319         in_EVENT_STATE [i]->write(EVENT_STATE_NO_EVENT);
    320         in_EVENT_TYPE  [i]->write(EVENT_TYPE_NONE     );
    321         }
     320        in_EVENT_VAL   [i]->write(0);
     321
    322322      //---------------------------------------------------------------------
    323323      //---------------------------------------------------------------------
     
    932932         
    933933          SC_START(1);
    934           in_EVENT_STATE [context]->write(EVENT_STATE_END            );
     934          in_EVENT_VAL   [context]->write(1);
    935935          in_EVENT_TYPE  [context]->write(EVENT_TYPE_MISS_SPECULATION);
    936936
    937937          SC_START(1);
    938           in_EVENT_STATE [context]->write(EVENT_STATE_NO_EVENT       );
     938          in_EVENT_VAL   [context]->write(0);
    939939          in_EVENT_TYPE  [context]->write(EVENT_TYPE_NONE            );
    940940        }
     
    13661366         
    13671367          SC_START(1);
    1368           in_EVENT_STATE [context]->write(EVENT_STATE_END            );
     1368          in_EVENT_VAL   [context]->write(1);
    13691369          in_EVENT_TYPE  [context]->write(EVENT_TYPE_MISS_SPECULATION);
    13701370
    13711371          SC_START(1);
    1372           in_EVENT_STATE [context]->write(EVENT_STATE_NO_EVENT       );
     1372          in_EVENT_VAL   [context]->write(0);
    13731373          in_EVENT_TYPE  [context]->write(EVENT_TYPE_NONE            );
    13741374        }
     
    19741974           
    19751975            SC_START(1);
    1976             in_EVENT_STATE [context]->write(EVENT_STATE_END            );
     1976            in_EVENT_VAL   [context]->write(1);
    19771977            in_EVENT_TYPE  [context]->write(EVENT_TYPE_MISS_SPECULATION);
    19781978           
    19791979            SC_START(1);
    1980             in_EVENT_STATE [context]->write(EVENT_STATE_NO_EVENT       );
     1980            in_EVENT_VAL   [context]->write(0);
    19811981            in_EVENT_TYPE  [context]->write(EVENT_TYPE_NONE            );
    19821982          }
     
    21552155  delete [] out_UPDATE_RAS_PREDICTION_IFETCH;
    21562156
    2157   DELETE1_SC_SIGNAL( in_EVENT_STATE                    ,_param->_nb_context);
     2157  DELETE1_SC_SIGNAL( in_EVENT_VAL                      ,_param->_nb_context);
     2158  DELETE1_SC_SIGNAL(out_EVENT_ACK                      ,_param->_nb_context);
    21582159  DELETE1_SC_SIGNAL( in_EVENT_TYPE                     ,_param->_nb_context);
    21592160  DELETE1_SC_SIGNAL( in_EVENT_DEPTH                    ,_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h

    r95 r97  
    5252  public    : Stat                           * _stat;
    5353
    54   private   : counter_t                     ** _stat_nb_branch_hit       ; //[nb_context]
    55   private   : counter_t                     ** _stat_nb_branch_miss      ; //[nb_context]
    56   private   : counter_t                     ** _stat_nb_branch_unused    ; //[nb_context]
    57   private   : counter_t                     ** _stat_queue_nb_cycle_empty; //[nb_context]
    58   private   : counter_t                     ** _stat_queue_nb_cycle_full ; //[nb_context]
    59   private   : counter_t                     ** _stat_queue_nb_elt        ; //[nb_context]
     54  private   : counter_t                    *** _stat_nb_branch_hit            ; //[nb_context][MAX_BRANCH_CONDITION]
     55  private   : counter_t                    *** _stat_nb_branch_miss           ; //[nb_context][MAX_BRANCH_CONDITION]
     56  private   : counter_t                     ** _stat_nb_branch_unused         ; //[nb_context]
     57  private   : counter_t                     ** _stat_ufpt_queue_nb_elt        ; //[nb_context]
     58  private   : counter_t                     ** _stat_upt_queue_nb_elt         ; //[nb_context]
    6059
    6160#endif
     
    143142
    144143    // ~~~~~[ Interface : "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    145   public    : SC_IN (Tevent_state_t     )  **  in_EVENT_STATE                    ; //[nb_context]
     144  public    : SC_IN (Tcontrol_t         )  **  in_EVENT_VAL                      ; //[nb_context]
     145  public    : SC_OUT(Tcontrol_t         )  ** out_EVENT_ACK                      ; //[nb_context]
    146146  public    : SC_IN (Tevent_type_t      )  **  in_EVENT_TYPE                     ; //[nb_context]
    147147  public    : SC_IN (Tdepth_t           )  **  in_EVENT_DEPTH                    ; //[nb_context]
     
    197197  private   : Tdepth_t                      * internal_UPDATE_DEPTH                   ; //[nb_inst_update]
    198198  private   : bool                          * internal_UPDATE_RAS                     ; //[nb_inst_update]
     199  private   : Tcontrol_t                    * internal_EVENT_ACK                      ; //[nb_context]
    199200
    200201#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp

    r88 r97  
    7676    if (usage_is_set(_usage,USE_SYSTEMC))
    7777      {
    78 
     78        // Constant
    7979        for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
    8080          {
     
    8282            PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
    8383          }
     84        for (uint32_t i=0; i<_param->_nb_context; ++i)
     85          {
     86            internal_EVENT_ACK [i] = 1;
     87            PORT_WRITE(out_EVENT_ACK [i], internal_EVENT_ACK [i]);
     88          }
    8489
    8590        log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_allocation.cpp

    r95 r97  
    151151      ALLOC1_INTERFACE("event", IN,SOUTH,"event", _param->_nb_context);
    152152
    153       ALLOC1_SIGNAL_IN ( in_EVENT_STATE  ,"state",Tevent_state_t,_param->_size_event_state);
     153      ALLOC1_VALACK_IN ( in_EVENT_VAL    ,VAL);
     154      ALLOC1_VALACK_OUT(out_EVENT_ACK    ,ACK);
    154155      ALLOC1_SIGNAL_IN ( in_EVENT_TYPE   ,"type" ,Tevent_type_t ,_param->_size_event_type );
    155156      ALLOC1_SIGNAL_IN ( in_EVENT_DEPTH  ,"depth",Tdepth_t      ,_param->_size_depth      );
     
    183184    ALLOC1(internal_UPDATE_DEPTH                    ,Tdepth_t  ,_param->_nb_inst_update);
    184185    ALLOC1(internal_UPDATE_RAS                      ,bool      ,_param->_nb_inst_update);
     186    ALLOC1(internal_EVENT_ACK                       ,Tcontrol_t,_param->_nb_context);
    185187
    186188    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_deallocation.cpp

    r95 r97  
    111111
    112112        // ~~~~~[ Interface : "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    113         DELETE1_SIGNAL( in_EVENT_STATE  ,_param->_nb_context,_param->_size_event_state);
     113        DELETE1_SIGNAL( in_EVENT_VAL    ,_param->_nb_context,1);
     114        DELETE1_SIGNAL(out_EVENT_ACK    ,_param->_nb_context,1);
    114115        DELETE1_SIGNAL( in_EVENT_TYPE   ,_param->_nb_context,_param->_size_event_type );
    115116        DELETE1_SIGNAL( in_EVENT_DEPTH  ,_param->_nb_context,_param->_size_depth      );
     
    137138        DELETE1(internal_UPDATE_DEPTH                    ,_param->_nb_inst_update);
    138139        DELETE1(internal_UPDATE_RAS                      ,_param->_nb_inst_update);
     140        DELETE1(internal_EVENT_ACK                       ,_param->_nb_context);
    139141       
    140142        // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_branch_complete.cpp

    r94 r97  
    6767              if (take != 1)
    6868                throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad direction.",i,toString(condition).c_str()));
    69               if (addr_dest != addr_good)
    70                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
     69//               if (addr_dest != addr_good)
     70//                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
    7171#endif
    7272
     
    8585
    8686#ifdef DEBUG_TEST
    87               if (addr_dest != addr_good)
    88                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
     87//               if (addr_dest != addr_good)
     88//                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
    8989#endif
    9090
     
    103103
    104104#ifdef DEBUG_TEST
    105               if (addr_dest != addr_good)
    106                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
     105//               if (addr_dest != addr_good)
     106//                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
    107107#endif
    108108
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_statistics_allocation.cpp

    r88 r97  
    88
    99#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
     10#include "Behavioural/include/Allocation.h"
     11
    1012
    1113namespace morpheo {
     
    2830                      param_statistics);
    2931
    30 //     _stat_nb_branch_hit        = new counter_t * [_param->_nb_context];
    31 //     _stat_nb_branch_miss       = new counter_t * [_param->_nb_context];
    32 //     _stat_nb_branch_unused     = new counter_t * [_param->_nb_context];
    33 //     _stat_queue_nb_cycle_empty = new counter_t * [_param->_nb_context];
    34 //     _stat_queue_nb_cycle_full  = new counter_t * [_param->_nb_context];
    35 //     _stat_queue_nb_elt         = new counter_t * [_param->_nb_context];
    36  
    37 //     for (uint32_t i=0; i<_param->_nb_context; ++i)
    38 //       {
    39 //         _stat_nb_branch_hit        [i] = _stat->create_counter("nb_branch_hit_"       +toString(i),"",toString(_("Branch hit speculation (context %d)"),i));
    40 //         _stat_nb_branch_miss       [i] = _stat->create_counter("nb_branch_miss_"      +toString(i),"",toString(_("Branch miss speculation (context %d)"),i));
    41 //         _stat_nb_branch_unused     [i] = _stat->create_counter("nb_branch_unused_"    +toString(i),"",toString(_("Branch unused, because an previous branch have miss speculation (context %d)"),i));
    42 //         _stat_queue_nb_cycle_empty [i] = _stat->create_counter("queue_nb_cycle_empty_"+toString(i),"",toString(_("Cycle number where the Update Prediction Table is empty (context %d)"),i));
    43 //         _stat_queue_nb_cycle_full  [i] = _stat->create_counter("queue_nb_cycle_full_" +toString(i),"",toString(_("Cycle number where the Update Prediction Table is full (%d elements) (context %d)"),_param->_size_queue[i],i));
    44 //         _stat_queue_nb_elt         [i] = _stat->create_counter("queue_nb_elt_"        +toString(i),"",toString(_("Average branchement by cycle in Update Prediction Table (context %d)"),i));
    45 //       }
    46    
     32    {
     33      ALLOC2(_stat_nb_branch_hit        ,counter_t *,_param->_nb_context,MAX_BRANCH_CONDITION);
     34      ALLOC2(_stat_nb_branch_miss       ,counter_t *,_param->_nb_context,MAX_BRANCH_CONDITION);
     35      ALLOC1(_stat_nb_branch_unused     ,counter_t *,_param->_nb_context);
     36     
     37      for (uint32_t i=0; i<_param->_nb_context; ++i)
     38        {
     39          std::string sum_miss        = "0";
     40          std::string sum_branchement = "0";
     41
     42          for (uint32_t j=0; j<MAX_BRANCH_CONDITION; ++j)
     43            if (is_branch_condition_valid(j))
     44              {
     45                std::string nb_miss        = "nb_branch_miss_"+toString(i)+"_"+toString(j);
     46                std::string nb_branchement = "+ nb_branch_hit_"+toString(i)+"_"+toString(j)+" nb_branch_miss_"+toString(i)+"_"+toString(j);
     47                _stat_nb_branch_hit  [i][j] = _stat->create_counter("nb_branch_hit_" +toString(i)+"_"+toString(j),"",toString(_("Branch hit  speculation, branch condition : %s (context %d)"),toString(static_cast<branch_condition_t>(j)).c_str(),i));
     48                _stat_nb_branch_miss [i][j] = _stat->create_counter(nb_miss,"",toString(_("Branch miss speculation, branch condition : %s (context %d)"),toString(static_cast<branch_condition_t>(j)).c_str(),i));
     49
     50//                 _stat->create_expr_average("average_miss_"+toString(i)+"_"+toString(j),
     51//                                            "nb_branch_miss_"+toString(i)+"_"+toString(j),
     52//                                            nb_branchement,
     53//                                            "miss/branchement",
     54//                                            toString(_("Average miss by branchement, branch condition : %s (context %d)"),toString(static_cast<branch_condition_t>(j)).c_str(),i));
     55
     56                _stat->create_expr_percent("percent_miss_"+toString(i)+"_"+toString(j),
     57                                           nb_miss,
     58                                           nb_branchement,
     59                                           toString(_("Percent miss by branchement, branch condition : %s (context %d)"),toString(static_cast<branch_condition_t>(j)).c_str(),i));
     60
     61                sum_miss        = "+ "+nb_miss       +" "+ sum_miss;
     62                sum_branchement = "+ "+nb_branchement+" "+sum_branchement;
     63              }
     64
     65//           _stat->create_expr_average("average_miss_"+toString(i),
     66//                                      sum_miss,
     67//                                      sum_branchement,
     68//                                      "miss/branchement",
     69//                                      toString(_("Average miss by branchement (context %d)"),i));
     70
     71          _stat->create_expr_percent("percent_miss_"+toString(i),
     72                                     sum_miss,
     73                                     sum_branchement,
     74                                     toString(_("Percent miss by branchement (context %d)"),i));
     75         
     76          _stat_nb_branch_unused [i] = _stat->create_counter("nb_branch_unused_" +toString(i),"",toString(_("Branch unused (previous speculation) (context %d)"),i));
     77        }
     78    }
     79
     80    {
     81      ALLOC1(_stat_ufpt_queue_nb_elt        ,counter_t *,_param->_nb_context);
     82     
     83      for (uint32_t i=0; i<_param->_nb_context; ++i)
     84        {
     85          _stat_ufpt_queue_nb_elt         [i] = _stat->create_counter("ufpt_queue_nb_elt_"+toString(i),"",toString(_("Branchement in Update Fetch Prediction Table (context %d)"),i));
     86         
     87          _stat->create_expr_average_by_cycle("average_occupation_ufpt_queue_"+toString(i),"ufpt_queue_nb_elt_"+toString(i), "", toString(_("Average instruction by cycle in Update Fetch Prediction Table (context %d)"),i));
     88          _stat->create_expr_percent         ("percent_occupation_ufpt_queue_"+toString(i), "average_occupation_ufpt_queue_"+toString(i), toString(_param->_size_ufpt_queue[i]), toString(_("Percent occupation of Update Fetch Prediction Table (context %d)"),i));
     89        }
     90    }
     91
     92    {
     93      ALLOC1(_stat_upt_queue_nb_elt        ,counter_t *,_param->_nb_context);
     94     
     95      for (uint32_t i=0; i<_param->_nb_context; ++i)
     96        {
     97          _stat_upt_queue_nb_elt         [i] = _stat->create_counter("upt_queue_nb_elt_"+toString(i),"",toString(_("Average branchement by cycle in Update Prediction Table (context %d)"),i));
     98         
     99          _stat->create_expr_average_by_cycle("average_occupation_upt_queue_"+toString(i),"upt_queue_nb_elt_"+toString(i), "", toString(_("Average instruction by cycle in Update Prediction Table (context %d)"),i));
     100          _stat->create_expr_percent         ("percent_occupation_upt_queue_"+toString(i), "average_occupation_upt_queue_"+toString(i), toString(_param->_size_upt_queue[i]), toString(_("Percent occupation of Update Prediction Table (context %d)"),i));
     101        }
     102    }
     103
    47104    log_printf(FUNC,Update_Prediction_Table,FUNCTION,"End");
    48105  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_statistics_deallocation.cpp

    r88 r97  
    88
    99#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
     10#include "Behavioural/include/Allocation.h"
    1011
    1112namespace morpheo {
     
    2728   
    2829    delete    _stat;
    29 //     delete [] _stat_nb_branch_hit       ;
    30 //     delete [] _stat_nb_branch_miss      ;
    31 //     delete [] _stat_nb_branch_unused    ;
    32 //     delete [] _stat_queue_nb_cycle_empty;
    33 //     delete [] _stat_queue_nb_cycle_full ;
    34 //     delete [] _stat_queue_nb_elt        ;
     30
     31    DELETE2(_stat_nb_branch_hit            ,_param->_nb_context,MAX_BRANCH_CONDITION);
     32    DELETE2(_stat_nb_branch_miss           ,_param->_nb_context,MAX_BRANCH_CONDITION);
     33    DELETE1(_stat_nb_branch_unused         ,_param->_nb_context);
     34    DELETE1(_stat_ufpt_queue_nb_elt        ,_param->_nb_context);
     35    DELETE1(_stat_upt_queue_nb_elt         ,_param->_nb_context);
    3536   
    3637    log_printf(FUNC,Update_Prediction_Table,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp

    r95 r97  
    472472//                    bool have_event = ((reg_UPDATE_PREDICTION_TABLE [context][depth]._state == UPDATE_PREDICTION_STATE_KO) or
    473473//                                       (reg_UPDATE_PREDICTION_TABLE [context][depth]._state == UPDATE_PREDICTION_STATE_EVENT));
     474#ifdef STATISTICS
     475                      Tbranch_condition_t condition = reg_UPDATE_PREDICTION_TABLE [context][depth]._condition;
     476                      bool ok     = (reg_UPDATE_PREDICTION_TABLE [context][depth]._state == UPDATE_PREDICTION_STATE_OK);
     477#endif
    474478                      bool ko     = (reg_UPDATE_PREDICTION_TABLE [context][depth]._state == UPDATE_PREDICTION_STATE_KO);
    475479
     
    480484                         
    481485                          reg_UPDATE_PREDICTION_TABLE [context][depth]._state = UPDATE_PREDICTION_STATE_END_KO;
     486
     487#ifdef STATISTICS
     488                          if (usage_is_set(_usage,USE_STATISTICS))
     489                            (*_stat_nb_branch_miss [context][condition])++;
     490#endif
    482491                        }
    483492                      else
     
    486495                         
    487496                          reg_UPDATE_PREDICTION_TABLE [context][depth]._state = UPDATE_PREDICTION_STATE_END_OK;
     497
     498
     499#ifdef STATISTICS
     500                          if (usage_is_set(_usage,USE_STATISTICS))
     501                            {
     502                              if (ok)
     503                                (*_stat_nb_branch_hit    [context][condition]) ++;
     504                              else
     505                                (*_stat_nb_branch_unused [context]) ++;
     506                            }
     507#endif
    488508                        }
    489509                     
     
    548568        // ===================================================================
    549569        for (uint32_t i=0; i<_param->_nb_context; ++i)
    550           {
    551             //----------------------------------------------------------------
    552             // Cases
    553             //----------------------------------------------------------------
    554             //   * EVENT_TYPE_NONE               - nothing
    555             //   * EVENT_TYPE_MISS_SPECULATION   
    556             //     * EVENT_STATE_END             - Change state, reset pointer
    557             //   * EVENT_TYPE_EXCEPTION          -
    558             //     * EVENT_STATE_EVENT           - Flush upft and upt
    559             //     * EVENT_STATE_END             - Change state, reset pointer
    560             //   * EVENT_TYPE_BRANCH_NO_ACCURATE - nothing : manage in decod and update
    561             //   * EVENT_TYPE_SPR_ACCESS         - nothing
    562             //   * EVENT_TYPE_MSYNC              - nothing
    563             //   * EVENT_TYPE_PSYNC              - nothing
    564             //   * EVENT_TYPE_CSYNC              - nothing
    565 
    566             Tevent_state_t event_state = PORT_READ(in_EVENT_STATE [i]);
    567             Tevent_type_t  event_type  = PORT_READ(in_EVENT_TYPE  [i]);
    568 //             Tdepth_t       depth       = PORT_READ(in_EVENT_DEPTH [i]);
     570          if (PORT_READ(in_EVENT_VAL [i]) and internal_EVENT_ACK [i])
     571            {
     572              //----------------------------------------------------------------
     573              // Cases
     574              //----------------------------------------------------------------
     575              //   * EVENT_TYPE_NONE               - nothing
     576              //   * EVENT_TYPE_MISS_SPECULATION   - Change state, reset pointer
     577              //   * EVENT_TYPE_EXCEPTION          - Flush upft and upt, Change state, reset pointer
     578              //   * EVENT_TYPE_BRANCH_NO_ACCURATE - nothing : manage in decod and update
     579              //   * EVENT_TYPE_SPR_ACCESS         - nothing
     580              //   * EVENT_TYPE_MSYNC              - nothing
     581              //   * EVENT_TYPE_PSYNC              - nothing
     582              //   * EVENT_TYPE_CSYNC              - nothing
     583             
     584              Tevent_type_t  event_type  = PORT_READ(in_EVENT_TYPE  [i]);
     585//            Tdepth_t       depth       = PORT_READ(in_EVENT_DEPTH [i]);
    569586           
    570             // Test if end of miss
    571             if ((event_state == EVENT_STATE_END) and
    572                 (event_type  == EVENT_TYPE_MISS_SPECULATION))
    573               {
    574                 log_printf(TRACE,Update_Prediction_Table,FUNCTION,"  * EVENT");
    575                 log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * state : EVENT_STATE_END");
    576                 log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * type  : EVENT_TYPE_MISS_SPECULATION");
    577 
    578 #ifdef DEBUG_TEST
    579                 if (reg_EVENT_STATE [i] != EVENT_STATE_WAIT_END_EVENT)
    580                   throw ERRORMORPHEO(FUNCTION,_("Event : invalid event state."));
    581 #endif
    582                
    583                 // Change state
    584                 log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * EVENT [%d] <- EVENT_STATE_OK (event)",i);
    585                
    586                 reg_EVENT_STATE [i] = EVENT_STATE_OK;
    587 
    588 //                 uint32_t bottom = reg_UPT_BOTTOM [i];
    589 
    590 //                 reg_UPT_TOP    [i] = bottom;
    591 //                 reg_UPT_UPDATE [i] = bottom;
    592               }
    593           }
     587              // Test if end of miss
     588              if (event_type  == EVENT_TYPE_MISS_SPECULATION)
     589                {
     590                  log_printf(TRACE,Update_Prediction_Table,FUNCTION,"  * EVENT");
     591                  log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * type  : EVENT_TYPE_MISS_SPECULATION");
     592                 
     593#ifdef DEBUG_TEST
     594                  if (reg_EVENT_STATE [i] != EVENT_STATE_WAIT_END_EVENT)
     595                    throw ERRORMORPHEO(FUNCTION,_("Event : invalid event state."));
     596#endif
     597                 
     598                  // Change state
     599                  log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * EVENT [%d] <- EVENT_STATE_OK (event)",i);
     600                 
     601                  reg_EVENT_STATE [i] = EVENT_STATE_OK;
     602                }
     603            }
    594604
    595605        // ===================================================================
     
    634644          }
    635645
     646#ifdef STATISTICS
     647        if (usage_is_set(_usage,USE_STATISTICS))
     648          for (uint32_t i=0; i<_param->_nb_context; i++)
     649            {
     650              for (uint32_t j=0; j<_param->_size_ufpt_queue[i]; j++)
     651                if (reg_UPDATE_FETCH_PREDICTION_TABLE [i][j]._state != UPDATE_FETCH_PREDICTION_STATE_EMPTY)
     652                  (*_stat_ufpt_queue_nb_elt [i]) ++;
     653              for (uint32_t j=0; j<_param->_size_upt_queue[i]; j++)
     654                if (reg_UPDATE_PREDICTION_TABLE [i][j]._state != UPDATE_PREDICTION_STATE_EMPTY)
     655                  (*_stat_upt_queue_nb_elt [i]) ++;
     656            }
     657#endif
     658       
    636659        // ===================================================================
    637660        // =====[ PRINT ]=====================================================
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/include/Prediction_unit.h

    r95 r97  
    115115
    116116    // ~~~~~[ Interface : "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    117   public    : SC_IN (Tevent_state_t     )  **  in_EVENT_STATE                    ; //[nb_context]
     117  public    : SC_IN (Tcontrol_t         )  **  in_EVENT_VAL                      ; //[nb_context]
     118  public    : SC_OUT(Tcontrol_t         )  ** out_EVENT_ACK                      ; //[nb_context]
    118119  public    : SC_IN (Tevent_type_t      )  **  in_EVENT_TYPE                     ; //[nb_context]
    119120  public    : SC_IN (Tdepth_t           )  **  in_EVENT_DEPTH                    ; //[nb_context]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/src/Prediction_unit_allocation.cpp

    r95 r97  
    136136      ALLOC1_INTERFACE("event", IN,SOUTH,"event", _param->_nb_context);
    137137
    138       ALLOC1_SIGNAL_IN ( in_EVENT_STATE  ,"state",Tevent_state_t,_param->_size_event_state);
     138      ALLOC1_VALACK_IN ( in_EVENT_VAL    ,VAL);
     139      ALLOC1_VALACK_OUT(out_EVENT_ACK    ,ACK);
    139140      ALLOC1_SIGNAL_IN ( in_EVENT_TYPE   ,"type" ,Tevent_type_t ,_param->_size_event_type );
    140141      ALLOC1_SIGNAL_IN ( in_EVENT_DEPTH  ,"depth",Tdepth_t      ,_param->_size_depth      );
     
    711712#endif
    712713
    713           PORT_MAP(_component,src , "in_EVENT_"+toString(i)+"_STATE",dest, "in_EVENT_"+toString(i)+"_STATE");
     714          PORT_MAP(_component,src , "in_EVENT_"+toString(i)+"_VAL"  ,dest, "in_EVENT_"+toString(i)+"_VAL"  );
     715          PORT_MAP(_component,src ,"out_EVENT_"+toString(i)+"_ACK"  ,dest,"out_EVENT_"+toString(i)+"_ACK"  );
    714716          PORT_MAP(_component,src , "in_EVENT_"+toString(i)+"_TYPE" ,dest, "in_EVENT_"+toString(i)+"_TYPE" );
    715717          if (_param->_have_port_depth)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/src/Prediction_unit_deallocation.cpp

    r95 r97  
    7171        DELETE1_SIGNAL(out_BRANCH_EVENT_ADDRESS_DEST     ,_param->_nb_context,_param->_size_instruction_address);
    7272
    73         DELETE1_SIGNAL( in_EVENT_STATE  ,_param->_nb_context,_param->_size_event_state);
     73        DELETE1_SIGNAL( in_EVENT_VAL    ,_param->_nb_context,1);
     74        DELETE1_SIGNAL(out_EVENT_ACK    ,_param->_nb_context,1);
    7475        DELETE1_SIGNAL( in_EVENT_TYPE   ,_param->_nb_context,_param->_size_event_type );
    7576        DELETE1_SIGNAL( in_EVENT_DEPTH  ,_param->_nb_context,_param->_size_depth      );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp

    r88 r97  
    9999  ALLOC0_SC_SIGNAL( in_COMMIT_EVENT_ADDRESS_EPCR      ," in_COMMIT_EVENT_ADDRESS_EPCR      ",Taddress_t           );
    100100  ALLOC0_SC_SIGNAL( in_COMMIT_EVENT_ADDRESS_EEAR_VAL  ," in_COMMIT_EVENT_ADDRESS_EEAR_VAL  ",Tcontrol_t           );
    101   ALLOC0_SC_SIGNAL( in_COMMIT_EVENT_ADDRESS_EEAR      ," in_COMMIT_EVENT_ADDRESS_EEAR      ",Taddress_t           );
     101  ALLOC0_SC_SIGNAL( in_COMMIT_EVENT_ADDRESS_EEAR      ," in_COMMIT_EVENT_ADDRESS_EEAR      ",Tgeneral_data_t      );
    102102  ALLOC1_SC_SIGNAL(out_EVENT_VAL                      ,"out_EVENT_VAL                      ",Tcontrol_t           ,_param->_nb_context);
    103103  ALLOC1_SC_SIGNAL( in_EVENT_ACK                      ," in_EVENT_ACK                      ",Tcontrol_t           ,_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_allocation.cpp

    r95 r97  
    140140      ALLOC_SIGNAL_IN   ( in_COMMIT_EVENT_ADDRESS_EPCR        ,"ADDRESS_EPCR"     ,Taddress_t           ,_param->_size_instruction_address   );
    141141      ALLOC_SIGNAL_IN   ( in_COMMIT_EVENT_ADDRESS_EEAR_VAL    ,"ADDRESS_EEAR_VAL" ,Tcontrol_t           ,1                       );
    142       ALLOC_SIGNAL_IN   ( in_COMMIT_EVENT_ADDRESS_EEAR        ,"ADDRESS_EEAR"     ,Taddress_t           ,_param->_size_instruction_address   );
     142      ALLOC_SIGNAL_IN   ( in_COMMIT_EVENT_ADDRESS_EEAR        ,"ADDRESS_EEAR"     ,Tgeneral_data_t      ,_param->_size_general_data          );
    143143    }
    144144
     
    580580          COMPONENT_MAP(_component,src ,"out_BRANCH_EVENT_"+toString(i)+"_ADDRESS_DEST"    ,
    581581                                   dest, "in_BRANCH_EVENT_"+toString(i)+"_ADDRESS_DEST"    );
     582        }
     583
     584      // ~~~~~[ Interface : "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     585      for (uint32_t i=0; i<_param->_nb_context; ++i)
     586        {
     587          dest = _name+"_glue";
     588#ifdef POSITION
     589          _component->interface_map (src ,"event_"+toString(i),
     590                                     dest,"event_"+toString(i));
     591#endif
     592          COMPONENT_MAP(_component,src , "in_EVENT_"+toString(i)+                "_VAL"  ,
     593                                   dest,"out_EVENT_"+toString(i)+"_PREDICTION_UNIT_VAL"  );
     594          COMPONENT_MAP(_component,src ,"out_EVENT_"+toString(i)+                "_ACK"  ,
     595                                   dest, "in_EVENT_"+toString(i)+"_PREDICTION_UNIT_ACK"  );
     596          COMPONENT_MAP(_component,src , "in_EVENT_"+toString(i)+                "_TYPE" ,
     597                                   dest,"out_EVENT_"+toString(i)+"_PREDICTION_UNIT_TYPE" );
     598          if (_param->_have_port_depth)
     599          COMPONENT_MAP(_component,src , "in_EVENT_"+toString(i)+                "_DEPTH",
     600                                   dest,"out_EVENT_"+toString(i)+"_PREDICTION_UNIT_DEPTH");
    582601        }
    583602
     
    967986          COMPONENT_MAP(_component,src ,"out_EVENT_"+toString(i)+              "_IS_DS_TAKE"      ,
    968987                                   dest, "in_EVENT_"+toString(i)+"_CONTEXT_STATE_IS_DS_TAKE"      );
     988          COMPONENT_MAP(_component,src ,"out_EVENT_"+toString(i)+              "_TYPE"            ,
     989                                   dest, "in_EVENT_"+toString(i)+"_CONTEXT_STATE_TYPE"            );
     990          if (_param->_have_port_depth)
     991          COMPONENT_MAP(_component,src ,"out_EVENT_"+toString(i)+              "_DEPTH"           ,
     992                                   dest, "in_EVENT_"+toString(i)+"_CONTEXT_STATE_DEPTH"           );
    969993        }
    970994
     
    11291153      //   in_EVENT_IFETCH_UNIT_ACK                             - component_ifetch_unit
    11301154      //  out_EVENT_IFETCH_UNIT_ADDRESS                         - component_ifetch_unit
    1131       //   in_EVENT_IFETCH_UNIT_ADDRESS_NEXT                    - component_ifetch_unit
     1155      //  out_EVENT_IFETCH_UNIT_ADDRESS_NEXT                    - component_ifetch_unit
    11321156      //  out_EVENT_IFETCH_UNIT_ADDRESS_NEXT_VAL                - component_ifetch_unit
    11331157      //   in_EVENT_IFETCH_UNIT_IS_DS_TAKE                      - component_ifetch_unit
     1158      //  out_EVENT_PREDICTION_UNIT_VAL                         - component_prediction_unit
     1159      //   in_EVENT_PREDICTION_UNIT_ACK                         - component_prediction_unit
     1160      //  out_EVENT_PREDICTION_UNIT_TYPE                        - component_prediction_unit
     1161      //  out_EVENT_PREDICTION_UNIT_DEPTH                       - component_prediction_unit
    11341162      //   in_EVENT_CONTEXT_STATE_VAL                           - component_context_state
    11351163      //  out_EVENT_CONTEXT_STATE_ACK                           - component_context_state
    11361164      //   in_EVENT_CONTEXT_STATE_ADDRESS                       - component_context_state
    11371165      //   in_EVENT_CONTEXT_STATE_ADDRESS_NEXT                  - component_context_state
    1138       //  out_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL              - component_context_state
     1166      //   in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL              - component_context_state
    11391167      //   in_EVENT_CONTEXT_STATE_IS_DS_TAKE                    - component_context_state
     1168      //   in_EVENT_CONTEXT_STATE_TYPE                          - component_context_state
     1169      //   in_EVENT_CONTEXT_STATE_DEPTH                         - component_context_state
    11401170
    11411171      // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
Note: See TracChangeset for help on using the changeset viewer.