Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters.cpp	(revision 112)
@@ -29,5 +29,5 @@
 			  uint32_t   nb_reg_free           ,
 			  uint32_t   nb_bank               ,
-			  uint32_t   size_counter          ,
+// 			  uint32_t   size_counter          ,
                           bool       is_toplevel)
   {
@@ -42,7 +42,7 @@
     _nb_reg_free            = nb_reg_free        ;
     _nb_bank                = nb_bank            ;
-    _size_counter           = size_counter       ;
+//  _size_counter           = size_counter       ;
 
-    _max_reader             = 1<<size_counter;
+//  _max_reader             = 1<<size_counter;
 
     uint32_t nb_thread = 0;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters_print.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Parameters_print.cpp	(revision 112)
@@ -35,5 +35,5 @@
     xml.singleton_begin("nb_reg_free        "); xml.attribut("value",toString(_nb_reg_free        )); xml.singleton_end();
     xml.singleton_begin("nb_bank            "); xml.attribut("value",toString(_nb_bank            )); xml.singleton_end();
-    xml.singleton_begin("size_counter       "); xml.attribut("value",toString(_size_counter       )); xml.singleton_end();
+//     xml.singleton_begin("size_counter       "); xml.attribut("value",toString(_size_counter       )); xml.singleton_end();
 
     for (uint32_t i=0;i<_nb_front_end; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp	(revision 112)
@@ -75,4 +75,9 @@
       {
 	// Constant
+	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+	  {
+	    internal_INSERT_ACK[i] = 1;
+	    PORT_WRITE(out_INSERT_ACK[i], internal_INSERT_ACK[i]);
+	  }
 	for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
 	  {
@@ -101,30 +106,30 @@
 # endif    
 
-	log_printf(INFO,Stat_List_unit,FUNCTION,"Method - genMealy");
+// 	log_printf(INFO,Stat_List_unit,FUNCTION,"Method - genMealy");
 
-	SC_METHOD (genMealy);
-	dont_initialize ();
-	sensitive << (*(in_CLOCK)).neg(); // need internal register
-	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
-	  sensitive << (*(in_INSERT_READ_RA        [i]))
-		    << (*(in_INSERT_NUM_REG_RA_PHY [i]))
-		    << (*(in_INSERT_READ_RB        [i]))
-		    << (*(in_INSERT_NUM_REG_RB_PHY [i]))
-		    << (*(in_INSERT_READ_RC        [i]))
-		    << (*(in_INSERT_NUM_REG_RC_PHY [i]));
+// 	SC_METHOD (genMealy);
+// 	dont_initialize ();
+// 	sensitive << (*(in_CLOCK)).neg(); // need internal register
+// 	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+// 	  sensitive << (*(in_INSERT_READ_RA        [i]))
+// 		    << (*(in_INSERT_NUM_REG_RA_PHY [i]))
+// 		    << (*(in_INSERT_READ_RB        [i]))
+// 		    << (*(in_INSERT_NUM_REG_RB_PHY [i]))
+// 		    << (*(in_INSERT_READ_RC        [i]))
+// 		    << (*(in_INSERT_NUM_REG_RC_PHY [i]));
 
-# ifdef SYSTEMCASS_SPECIFIC
-	// List dependency information
+// # ifdef SYSTEMCASS_SPECIFIC
+// 	// List dependency information
 
-	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
-	  {
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RA        [i]));
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RA_PHY [i]));
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RB        [i]));
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RB_PHY [i]));
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RC        [i]));
-	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RC_PHY [i]));
-	  }
-# endif    
+// 	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+// 	  {
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RA        [i]));
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RA_PHY [i]));
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RB        [i]));
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RB_PHY [i]));
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_READ_RC        [i]));
+// 	    (*(out_INSERT_ACK [i])) (*(in_INSERT_NUM_REG_RC_PHY [i]));
+// 	  }
+// # endif    
 	
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp	(revision 112)
@@ -49,5 +49,5 @@
 							 ,IN
 							 ,SOUTH,
-							 "Generalist interface"
+							 _("Generalist interface")
 #endif
 							 );
@@ -58,5 +58,5 @@
      // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("insert",IN,SOUTH,"Insert a renaming result",_param->_nb_inst_insert);
+       ALLOC1_INTERFACE_BEGIN("insert",IN,SOUTH,_("Insert a renaming result"),_param->_nb_inst_insert);
 
        ALLOC1_VALACK_IN ( in_INSERT_VAL               ,VAL);
@@ -72,12 +72,15 @@
        ALLOC1_SIGNAL_IN ( in_INSERT_WRITE_RE          ,"write_re"          ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_inst_insert);
      }
 
      // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("retire",IN,NORTH,"Retire a renaming result",_param->_nb_inst_retire);
+       ALLOC1_INTERFACE_BEGIN("retire",IN,NORTH,_("Retire a renaming result"),_param->_nb_inst_retire);
 
        ALLOC1_VALACK_IN ( in_RETIRE_VAL               ,VAL);
        ALLOC1_VALACK_OUT(out_RETIRE_ACK               ,ACK);
+       ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE           ,"restore"           ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RA           ,"read_ra"           ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RA_PHY    ,"num_reg_ra_phy"    ,Tgeneral_address_t,_param->_size_general_register);
@@ -94,22 +97,28 @@
        ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register);
        ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_inst_retire);
      }
 
      // ~~~~~[ interface : "push_gpr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("push_gpr",OUT,SOUTH,"Free a general register",_param->_nb_reg_free);
+       ALLOC1_INTERFACE_BEGIN("push_gpr",OUT,SOUTH,_("Free a general register"),_param->_nb_reg_free);
 
        ALLOC1_VALACK_OUT(out_PUSH_GPR_VAL    ,VAL);
        ALLOC1_VALACK_IN ( in_PUSH_GPR_ACK    ,ACK);
        ALLOC1_SIGNAL_OUT(out_PUSH_GPR_NUM_REG,"num_reg",Tgeneral_address_t,_param->_size_general_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_reg_free);
      }
 
      // ~~~~~[ interface : "push_spr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("push_spr",OUT,SOUTH,"Free a special register",_param->_nb_reg_free);
+       ALLOC1_INTERFACE_BEGIN("push_spr",OUT,SOUTH,_("Free a special register"),_param->_nb_reg_free);
 
        ALLOC1_VALACK_OUT(out_PUSH_SPR_VAL    ,VAL);
        ALLOC1_VALACK_IN ( in_PUSH_SPR_ACK    ,ACK);
        ALLOC1_SIGNAL_OUT(out_PUSH_SPR_NUM_REG,"num_reg",Tspecial_address_t,_param->_size_special_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_reg_free);
      }
 
@@ -117,19 +126,12 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-     gpr_stat_list = new stat_list_entry_t * [_param->_nb_bank];
-     spr_stat_list = new stat_list_entry_t * [_param->_nb_bank];
-
-     for (uint32_t i=0; i<_param->_nb_bank; i++)
-       {
-	 gpr_stat_list [i] = new stat_list_entry_t [_param->_nb_general_register_by_bank];
-	 spr_stat_list [i] = new stat_list_entry_t [_param->_nb_special_register_by_bank];
-       }       
-
-     internal_INSERT_ACK        = new Tcontrol_t [_param->_nb_inst_insert];
-     internal_RETIRE_ACK        = new Tcontrol_t [_param->_nb_inst_retire];
-     internal_PUSH_GPR_VAL      = new Tcontrol_t [_param->_nb_reg_free];
-     internal_PUSH_GPR_NUM_BANK = new uint32_t   [_param->_nb_reg_free];
-     internal_PUSH_SPR_VAL      = new Tcontrol_t [_param->_nb_reg_free];
-     internal_PUSH_SPR_NUM_BANK = new uint32_t   [_param->_nb_reg_free];
+     ALLOC2(gpr_stat_list,stat_list_entry_t,_param->_nb_bank,_param->_nb_general_register_by_bank);
+     ALLOC2(spr_stat_list,stat_list_entry_t,_param->_nb_bank,_param->_nb_special_register_by_bank);
+     ALLOC1(internal_INSERT_ACK       ,Tcontrol_t,_param->_nb_inst_insert);
+     ALLOC1(internal_RETIRE_ACK       ,Tcontrol_t,_param->_nb_inst_retire);
+     ALLOC1(internal_PUSH_GPR_VAL     ,Tcontrol_t,_param->_nb_reg_free);
+     ALLOC1(internal_PUSH_GPR_NUM_BANK,uint32_t  ,_param->_nb_reg_free);
+     ALLOC1(internal_PUSH_SPR_VAL     ,Tcontrol_t,_param->_nb_reg_free);
+     ALLOC1(internal_PUSH_SPR_NUM_BANK,uint32_t  ,_param->_nb_reg_free);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp	(revision 112)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -29,55 +30,52 @@
 	delete     in_NRESET;
 
-	delete []  in_INSERT_VAL               ;
-	delete [] out_INSERT_ACK               ;
-	delete []  in_INSERT_READ_RA           ;
-	delete []  in_INSERT_NUM_REG_RA_PHY    ;
-	delete []  in_INSERT_READ_RB           ;
-	delete []  in_INSERT_NUM_REG_RB_PHY    ;
-	delete []  in_INSERT_READ_RC           ;
-	delete []  in_INSERT_NUM_REG_RC_PHY    ;
-	delete []  in_INSERT_WRITE_RD          ;
-	delete []  in_INSERT_NUM_REG_RD_PHY_NEW;
-	delete []  in_INSERT_WRITE_RE          ;
-	delete []  in_INSERT_NUM_REG_RE_PHY_NEW;
+        DELETE1_SIGNAL( in_INSERT_VAL               ,_param->_nb_inst_insert,1);
+        DELETE1_SIGNAL(out_INSERT_ACK               ,_param->_nb_inst_insert,1);
+        DELETE1_SIGNAL( in_INSERT_READ_RA           ,_param->_nb_inst_insert,1                             );
+        DELETE1_SIGNAL( in_INSERT_NUM_REG_RA_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
+        DELETE1_SIGNAL( in_INSERT_READ_RB           ,_param->_nb_inst_insert,1                             );
+        DELETE1_SIGNAL( in_INSERT_NUM_REG_RB_PHY    ,_param->_nb_inst_insert,_param->_size_general_register);
+        DELETE1_SIGNAL( in_INSERT_READ_RC           ,_param->_nb_inst_insert,1                             );
+        DELETE1_SIGNAL( in_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register);
+        DELETE1_SIGNAL( in_INSERT_WRITE_RD          ,_param->_nb_inst_insert,1                             );
+        DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register);
+        DELETE1_SIGNAL( in_INSERT_WRITE_RE          ,_param->_nb_inst_insert,1                             );
+        DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register);
 
-	delete []  in_RETIRE_VAL               ;
-	delete [] out_RETIRE_ACK               ;
-	delete []  in_RETIRE_READ_RA           ;
-	delete []  in_RETIRE_NUM_REG_RA_PHY    ;
-	delete []  in_RETIRE_READ_RB           ;
-	delete []  in_RETIRE_NUM_REG_RB_PHY    ;
-	delete []  in_RETIRE_READ_RC           ;
-	delete []  in_RETIRE_NUM_REG_RC_PHY    ;
-	delete []  in_RETIRE_WRITE_RD          ;
-	delete []  in_RETIRE_RESTORE_RD_PHY_OLD;
-	delete []  in_RETIRE_NUM_REG_RD_PHY_OLD;
-	delete []  in_RETIRE_NUM_REG_RD_PHY_NEW;
-	delete []  in_RETIRE_WRITE_RE          ;
-	delete []  in_RETIRE_RESTORE_RE_PHY_OLD;
-	delete []  in_RETIRE_NUM_REG_RE_PHY_OLD;
-	delete []  in_RETIRE_NUM_REG_RE_PHY_NEW;
+        DELETE1_SIGNAL( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL(out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL( in_RETIRE_RESTORE           ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_READ_RA           ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RA_PHY    ,_param->_nb_inst_retire,_param->_size_general_register);
+        DELETE1_SIGNAL( in_RETIRE_READ_RB           ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RB_PHY    ,_param->_nb_inst_retire,_param->_size_general_register);
+        DELETE1_SIGNAL( in_RETIRE_READ_RC           ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RC_PHY    ,_param->_nb_inst_retire,_param->_size_special_register);
+        DELETE1_SIGNAL( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire,_param->_size_general_register);
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register);
+        DELETE1_SIGNAL( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire,1                             );
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire,_param->_size_special_register);
+        DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register);
 
-	delete [] out_PUSH_GPR_VAL             ;
-	delete []  in_PUSH_GPR_ACK             ;
+        DELETE1_SIGNAL(out_PUSH_GPR_VAL    ,_param->_nb_reg_free,1);
+        DELETE1_SIGNAL( in_PUSH_GPR_ACK    ,_param->_nb_reg_free,1);
+        DELETE1_SIGNAL(out_PUSH_GPR_NUM_REG,_param->_nb_reg_free,_param->_size_general_register);
 
-	delete [] out_PUSH_GPR_NUM_REG         ;
-	delete [] out_PUSH_SPR_VAL             ;
-	delete []  in_PUSH_SPR_ACK             ;
-	delete [] out_PUSH_SPR_NUM_REG         ;
-    
-        // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    
-        delete [] gpr_stat_list;
-        delete [] spr_stat_list;
-        
-        delete [] internal_INSERT_ACK       ;
-        delete [] internal_RETIRE_ACK       ;
-        delete [] internal_PUSH_GPR_VAL     ;
-        delete [] internal_PUSH_GPR_NUM_BANK;
-        delete [] internal_PUSH_SPR_VAL     ;
-        delete [] internal_PUSH_SPR_NUM_BANK;
+        DELETE1_SIGNAL(out_PUSH_SPR_VAL    ,_param->_nb_reg_free,1);
+        DELETE1_SIGNAL( in_PUSH_SPR_ACK    ,_param->_nb_reg_free,1);
+        DELETE1_SIGNAL(out_PUSH_SPR_NUM_REG,_param->_nb_reg_free,_param->_size_special_register);
+
+        DELETE2(gpr_stat_list             ,_param->_nb_bank,_param->_nb_general_register_by_bank);
+        DELETE2(spr_stat_list             ,_param->_nb_bank,_param->_nb_special_register_by_bank);
+        DELETE1(internal_INSERT_ACK       ,_param->_nb_inst_insert);
+        DELETE1(internal_RETIRE_ACK       ,_param->_nb_inst_retire);
+        DELETE1(internal_PUSH_GPR_VAL     ,_param->_nb_reg_free);
+        DELETE1(internal_PUSH_GPR_NUM_BANK,_param->_nb_reg_free);
+        DELETE1(internal_PUSH_SPR_VAL     ,_param->_nb_reg_free);
+        DELETE1(internal_PUSH_SPR_NUM_BANK,_param->_nb_reg_free);
       }
-
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMealy.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMealy.cpp	(revision 112)
@@ -19,45 +19,45 @@
 
 
-#undef  FUNCTION
-#define FUNCTION "Stat_List_unit::genMealy"
-  void Stat_List_unit::genMealy (void)
-  {
-    log_begin(Stat_List_unit,FUNCTION);
-    log_function(Stat_List_unit,FUNCTION,_name.c_str());
+// #undef  FUNCTION
+// #define FUNCTION "Stat_List_unit::genMealy"
+//   void Stat_List_unit::genMealy (void)
+//   {
+//     log_begin(Stat_List_unit,FUNCTION);
+//     log_function(Stat_List_unit,FUNCTION,_name.c_str());
 
-    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
-      {
-	bool ack = true;
+//     for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+//       {
+// 	bool ack = true;
 
-	if (PORT_READ(in_INSERT_READ_RA [i]))
-	  {
-	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RA_PHY [i]);
-	    uint32_t bank = num_reg >> _param->_shift_gpr;
-	    uint32_t reg  = num_reg  & _param->_mask_gpr ;
-	    ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
-	  }
+// 	if (PORT_READ(in_INSERT_READ_RA [i]))
+// 	  {
+// 	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RA_PHY [i]);
+// 	    uint32_t bank = num_reg >> _param->_shift_gpr;
+// 	    uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 	    ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
+// 	  }
 
-	if (PORT_READ(in_INSERT_READ_RB [i]))
-	  {
-	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RB_PHY [i]);
-	    uint32_t bank = num_reg >> _param->_shift_gpr;
-	    uint32_t reg  = num_reg  & _param->_mask_gpr ;
-	    ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
-	  }
+// 	if (PORT_READ(in_INSERT_READ_RB [i]))
+// 	  {
+// 	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RB_PHY [i]);
+// 	    uint32_t bank = num_reg >> _param->_shift_gpr;
+// 	    uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 	    ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
+// 	  }
 
-	if (PORT_READ(in_INSERT_READ_RC [i]))
-	  {
-	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RC_PHY [i]);
-	    uint32_t bank = num_reg >> _param->_shift_spr;
-	    uint32_t reg  = num_reg  & _param->_mask_spr ;
-	    ack &= spr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
-	  }
+// 	if (PORT_READ(in_INSERT_READ_RC [i]))
+// 	  {
+// 	    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RC_PHY [i]);
+// 	    uint32_t bank = num_reg >> _param->_shift_spr;
+// 	    uint32_t reg  = num_reg  & _param->_mask_spr ;
+// 	    ack &= spr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
+// 	  }
 
-	internal_INSERT_ACK [i] = ack;
-	PORT_WRITE(out_INSERT_ACK [i], ack);
-      }
+// 	internal_INSERT_ACK [i] = ack;
+// 	PORT_WRITE(out_INSERT_ACK [i], ack);
+//       }
     
-    log_end(Stat_List_unit,FUNCTION);
-  };
+//     log_end(Stat_List_unit,FUNCTION);
+//   };
 
 }; // end namespace stat_list_unit
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp	(revision 112)
@@ -26,6 +26,6 @@
     log_function(Stat_List_unit,FUNCTION,_name.c_str());
 
-    uint32_t gpr_ptr = internal_GPR_PTR_FREE;
-    uint32_t spr_ptr = internal_SPR_PTR_FREE;
+    uint32_t gpr_ptr = reg_GPR_PTR_FREE;
+    uint32_t spr_ptr = reg_SPR_PTR_FREE;
 
     for (uint32_t i=0; i<_param->_nb_reg_free; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp	(revision 106)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp	(revision 112)
@@ -38,6 +38,6 @@
 	      spr_stat_list [i][j].reset((spr++)<_param->_nb_spr_use_init);
 	  }
-	internal_GPR_PTR_FREE = 0;
-	internal_SPR_PTR_FREE = 0;
+	reg_GPR_PTR_FREE = 0;
+	reg_SPR_PTR_FREE = 0;
       }
     else
@@ -51,36 +51,36 @@
               log_printf(TRACE,Stat_List_unit,FUNCTION,"  * INSERT [%d]",i);
               
-	      if (PORT_READ(in_INSERT_READ_RA [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RA_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RA  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_gpr;
-		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		  gpr_stat_list [bank][reg].insert_read();
-		}
-
-	      if (PORT_READ(in_INSERT_READ_RB [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RB_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RB  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_gpr;
-		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		  gpr_stat_list [bank][reg].insert_read();
-		}
-
-	      if (PORT_READ(in_INSERT_READ_RC [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RC_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RC  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_spr;
-		  uint32_t reg  = num_reg  & _param->_mask_spr ;
-		  spr_stat_list [bank][reg].insert_read();
-		}
+// 	      if (PORT_READ(in_INSERT_READ_RA [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RA_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RA  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_gpr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 		  gpr_stat_list [bank][reg].insert_read();
+// 		}
+
+// 	      if (PORT_READ(in_INSERT_READ_RB [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RB_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RB  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_gpr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 		  gpr_stat_list [bank][reg].insert_read();
+// 		}
+
+// 	      if (PORT_READ(in_INSERT_READ_RC [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RC_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RC  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_spr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_spr ;
+// 		  spr_stat_list [bank][reg].insert_read();
+// 		}
 
 	      if (PORT_READ(in_INSERT_WRITE_RD [i]))
@@ -88,5 +88,5 @@
 		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RD_PHY_NEW [i]);
 
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg     : %d",num_reg);
+                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg new : %d",num_reg);
 
 		  uint32_t bank = num_reg >> _param->_shift_gpr;
@@ -97,7 +97,7 @@
 	      if (PORT_READ(in_INSERT_WRITE_RE [i]))
 		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RE_PHY_NEW [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg     : %d",num_reg);
+		  Tspecial_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RE_PHY_NEW [i]);
+
+                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg new : %d",num_reg);
 
 		  uint32_t bank = num_reg >> _param->_shift_spr;
@@ -115,36 +115,40 @@
               log_printf(TRACE,Stat_List_unit,FUNCTION,"  * RETIRE [%d]",i);
 
-	      if (PORT_READ(in_RETIRE_READ_RA [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RA_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RA  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_gpr;
-		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		  gpr_stat_list [bank][reg].retire_read();
-		}
-
-	      if (PORT_READ(in_RETIRE_READ_RB [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RB_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RD  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_gpr;
-		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		  gpr_stat_list [bank][reg].retire_read();
-		}
-
-	      if (PORT_READ(in_RETIRE_READ_RC [i]))
-		{
-		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RC_PHY [i]);
-
-                  log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RC  - num_reg     : %d",num_reg);
-
-		  uint32_t bank = num_reg >> _param->_shift_spr;
-		  uint32_t reg  = num_reg  & _param->_mask_spr ;
-		  spr_stat_list [bank][reg].retire_read();
-		}
+              Tcontrol_t restore = PORT_READ(in_RETIRE_RESTORE [i]);
+
+              log_printf(TRACE,Stat_List_unit,FUNCTION,"    * restore : %d",restore);
+
+// 	      if (PORT_READ(in_RETIRE_READ_RA [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RA_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RA  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_gpr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 		  gpr_stat_list [bank][reg].retire_read();
+// 		}
+
+// 	      if (PORT_READ(in_RETIRE_READ_RB [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RB_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RB  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_gpr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_gpr ;
+// 		  gpr_stat_list [bank][reg].retire_read();
+// 		}
+
+// 	      if (PORT_READ(in_RETIRE_READ_RC [i]))
+// 		{
+// 		  Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RC_PHY [i]);
+
+//                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * READ_RC  - num_reg     : %d",num_reg);
+
+// 		  uint32_t bank = num_reg >> _param->_shift_spr;
+// 		  uint32_t reg  = num_reg  & _param->_mask_spr ;
+// 		  spr_stat_list [bank][reg].retire_read();
+// 		}
 
 	      if (PORT_READ(in_RETIRE_WRITE_RD [i]))
@@ -157,18 +161,18 @@
 		    Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RD_PHY_OLD [i]);
 
-                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg_old : %d",num_reg);
+                    log_printf(TRACE,Stat_List_unit,FUNCTION,"                 num_reg_old : %d",num_reg);
                   
 		    uint32_t bank = num_reg >> _param->_shift_gpr;
 		    uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		    gpr_stat_list [bank][reg].retire_write_old(restore_old);
+		    gpr_stat_list [bank][reg].retire_write_old(restore, restore_old);
 		  }
 		  {
 		    Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RD_PHY_NEW [i]);
 
-                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg_new : %d",num_reg);
+                    log_printf(TRACE,Stat_List_unit,FUNCTION,"                 num_reg_new : %d",num_reg);
 
 		    uint32_t bank = num_reg >> _param->_shift_gpr;
 		    uint32_t reg  = num_reg  & _param->_mask_gpr ;
-		    gpr_stat_list [bank][reg].retire_write_new(restore_old);
+		    gpr_stat_list [bank][reg].retire_write_new(restore, restore_old);
 		  }
 		}
@@ -181,20 +185,20 @@
 
 		  {
-		    Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_OLD [i]);
-
-                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg_new : %d",num_reg);
+		    Tspecial_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_OLD [i]);
+
+                    log_printf(TRACE,Stat_List_unit,FUNCTION,"                 num_reg_old : %d",num_reg);
 
 		    uint32_t bank = num_reg >> _param->_shift_spr;
 		    uint32_t reg  = num_reg  & _param->_mask_spr ;
-		    spr_stat_list [bank][reg].retire_write_old(restore_old);
+		    spr_stat_list [bank][reg].retire_write_old(restore, restore_old);
 		  }
 		  {
-		    Tgeneral_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_NEW [i]);
-
-                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg_new : %d",num_reg);
+		    Tspecial_address_t num_reg = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_NEW [i]);
+
+                    log_printf(TRACE,Stat_List_unit,FUNCTION,"                 num_reg_new : %d",num_reg);
 
 		    uint32_t bank = num_reg >> _param->_shift_spr;
 		    uint32_t reg  = num_reg  & _param->_mask_spr ;
-		    spr_stat_list [bank][reg].retire_write_new(restore_old);
+		    spr_stat_list [bank][reg].retire_write_new(restore, restore_old);
 		  }
 		}
@@ -207,5 +211,5 @@
 	    // =====================================================
 	    if (internal_PUSH_GPR_VAL [i] and PORT_READ(in_PUSH_GPR_ACK [i]))
-	      gpr_stat_list[internal_PUSH_GPR_NUM_BANK [i]][internal_GPR_PTR_FREE].free();
+	      gpr_stat_list[internal_PUSH_GPR_NUM_BANK [i]][reg_GPR_PTR_FREE].free();
 	    
 	    // =====================================================
@@ -213,36 +217,81 @@
 	    // =====================================================
 	    if (internal_PUSH_SPR_VAL [i] and PORT_READ(in_PUSH_SPR_ACK [i]))
-	      spr_stat_list[internal_PUSH_SPR_NUM_BANK [i]][internal_SPR_PTR_FREE].free();
+	      spr_stat_list[internal_PUSH_SPR_NUM_BANK [i]][reg_SPR_PTR_FREE].free();
 	  }
 
 	// Update pointer
-	internal_GPR_PTR_FREE = ((internal_GPR_PTR_FREE==0)?_param->_nb_general_register_by_bank:internal_GPR_PTR_FREE)-1;
-	internal_SPR_PTR_FREE = ((internal_SPR_PTR_FREE==0)?_param->_nb_special_register_by_bank:internal_SPR_PTR_FREE)-1;
+	reg_GPR_PTR_FREE = ((reg_GPR_PTR_FREE==0)?_param->_nb_general_register_by_bank:reg_GPR_PTR_FREE)-1;
+	reg_SPR_PTR_FREE = ((reg_SPR_PTR_FREE==0)?_param->_nb_special_register_by_bank:reg_SPR_PTR_FREE)-1;
       }
 
 
 #if (DEBUG >= DEBUG_TRACE)
-    log_printf(TRACE,Stat_List_unit,FUNCTION,"  * Dump Stat List");
-    for (uint32_t i=0; i<_param->_nb_bank; i++)
-      for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
-        log_printf(TRACE,Stat_List_unit,FUNCTION,"    * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, valid %.1d, counter %.4d",
-                   i,
-                   j,
-                   (i<<_param->_shift_gpr)|j,
-                   gpr_stat_list[i][j]._is_free,
-                   gpr_stat_list[i][j]._is_link,
-                   gpr_stat_list[i][j]._is_valid,
-                   gpr_stat_list[i][j]._counter);
-    for (uint32_t i=0; i<_param->_nb_bank; i++)
-      for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
-        log_printf(TRACE,Stat_List_unit,FUNCTION,"    * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, valid %.1d, counter %.4d",
-                   i,
-                   j,
-                   (i<<_param->_shift_spr)|j,
-                   spr_stat_list[i][j]._is_free,
-                   spr_stat_list[i][j]._is_link,
-                   spr_stat_list[i][j]._is_valid,
-                   spr_stat_list[i][j]._counter);
+    {
+      log_printf(TRACE,Stat_List_unit,FUNCTION,"  * Dump Stat List");
+      log_printf(TRACE,Stat_List_unit,FUNCTION,"    * reg_GPR_PTR_FREE : %d",reg_GPR_PTR_FREE);
+      log_printf(TRACE,Stat_List_unit,FUNCTION,"    * reg_SPR_PTR_FREE : %d",reg_SPR_PTR_FREE);
+      
+      for (uint32_t i=0; i<_param->_nb_bank; i++)
+        for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
+          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d",
+                     i,
+                     j,
+                     (i<<_param->_shift_gpr)|j,
+                     gpr_stat_list[i][j]._is_free,
+                     gpr_stat_list[i][j]._is_link// ,
+//                      gpr_stat_list[i][j]._is_valid,
+//                      gpr_stat_list[i][j]._counter
+                     );
+      for (uint32_t i=0; i<_param->_nb_bank; i++)
+        for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
+          log_printf(TRACE,Stat_List_unit,FUNCTION,"    * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d",
+                     i,
+                     j,
+                     (i<<_param->_shift_spr)|j,
+                     spr_stat_list[i][j]._is_free,
+                     spr_stat_list[i][j]._is_link// ,
+//                      spr_stat_list[i][j]._is_valid,
+//                      spr_stat_list[i][j]._counter
+                     );
+    }
 #endif
+
+#ifdef DEBUG_TEST
+# if 0
+    {
+      uint32_t size_rob   = 64;
+      uint32_t nb_context = 1;
+      
+      {
+        uint32_t nb_is_link = 0;
+        uint32_t nb_reg = 32;
+        for (uint32_t i=0; i<_param->_nb_bank; i++)
+          for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++)
+            if (gpr_stat_list[i][j]._is_link)
+              nb_is_link ++;
+        
+        log_printf(TRACE,Stat_List_unit,FUNCTION,"    * nb_GPR_IS_LINK   : %d",nb_is_link);
+        
+        if (nb_is_link > size_rob+nb_context*nb_reg)
+          throw ERRORMORPHEO(FUNCTION,toString(_("They are %d linked gpr register, but max is size_rob+nb_context*%d = %d+%d*%d = %d"),nb_is_link,nb_reg,size_rob,nb_context,nb_reg,size_rob+nb_context*nb_reg));
+      }
+      
+      {
+        uint32_t nb_is_link = 0;
+        uint32_t nb_reg = 2;
+        for (uint32_t i=0; i<_param->_nb_bank; i++)
+          for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++)
+            if (spr_stat_list[i][j]._is_link)
+              nb_is_link ++;
+        
+        log_printf(TRACE,Stat_List_unit,FUNCTION,"    * nb_SPR_IS_LINK   : %d",nb_is_link);
+        
+        if (nb_is_link > size_rob+nb_context*nb_reg)
+          throw ERRORMORPHEO(FUNCTION,toString(_("They are %d linked spr register, but max is size_rob+nb_context*%d = %d+%d*%d = %d"),nb_is_link,nb_reg,size_rob,nb_context,nb_reg,size_rob+nb_context*nb_reg));
+      }
+    }
+# endif
+#endif
+                
 
 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
