Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_allocation.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_allocation.cpp	(revision 112)
@@ -49,5 +49,5 @@
 							 ,IN
 							 ,SOUTH,
-							 "Generalist interface"
+							 _("Generalist interface")
 #endif
 							 );
@@ -58,5 +58,5 @@
     // ~~~~~[ interface : "pop" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("pop", IN, NORTH, "New destination register", _param->_nb_pop);
+       ALLOC1_INTERFACE_BEGIN("pop", IN, NORTH, _("New destination register"), _param->_nb_pop);
 
        ALLOC1_VALACK_IN ( in_POP_VAL        ,VAL);
@@ -66,38 +66,45 @@
        ALLOC1_SIGNAL_IN ( in_POP_SPR_VAL    ,"spr_val"    ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_OUT(out_POP_SPR_NUM_REG,"spr_num_reg",Tspecial_address_t,_param->_size_special_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_pop);
      }
 
     // ~~~~~[ interface : "push_gpr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("push_gpr", IN, NORTH, "General register free", _param->_nb_push);
+       ALLOC1_INTERFACE_BEGIN("push_gpr", IN, NORTH, _("General register free"), _param->_nb_push);
 
        ALLOC1_VALACK_IN ( in_PUSH_GPR_VAL    ,VAL);
        ALLOC1_VALACK_OUT(out_PUSH_GPR_ACK    ,ACK);
        ALLOC1_SIGNAL_IN ( in_PUSH_GPR_NUM_REG,"num_reg",Tgeneral_address_t,_param->_size_general_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_push);
      }
 
     // ~~~~~[ interface : "push_spr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
-       ALLOC1_INTERFACE("push_spr", IN, NORTH, "General register free", _param->_nb_push);
+       ALLOC1_INTERFACE_BEGIN("push_spr", IN, NORTH, _("General register free"), _param->_nb_push);
 
        ALLOC1_VALACK_IN ( in_PUSH_SPR_VAL    ,VAL);
        ALLOC1_VALACK_OUT(out_PUSH_SPR_ACK    ,ACK);
        ALLOC1_SIGNAL_IN ( in_PUSH_SPR_NUM_REG,"num_reg",Tspecial_address_t,_param->_size_special_register);
+
+       ALLOC1_INTERFACE_END(_param->_nb_push);
      }
 
      if (usage_is_set(_usage,USE_SYSTEMC))
        {
-     _gpr_list = new std::list<uint32_t> [_param->_nb_bank];
-     _spr_list = new std::list<uint32_t> [_param->_nb_bank];
+     ALLOC1(_gpr_list,std::list<uint32_t>,_param->_nb_bank);
+     ALLOC1(_spr_list,std::list<uint32_t>,_param->_nb_bank);
 
-     internal_POP_ACK       = new Tcontrol_t [_param->_nb_pop];
-     internal_POP_GPR_BANK  = new uint32_t   [_param->_nb_pop];
-     internal_POP_SPR_BANK  = new uint32_t   [_param->_nb_pop];
+     ALLOC1(internal_POP_ACK      ,Tcontrol_t,_param->_nb_pop);
+     ALLOC1(internal_POP_GPR_BANK ,uint32_t  ,_param->_nb_pop);
+     ALLOC1(internal_POP_SPR_BANK ,uint32_t  ,_param->_nb_pop);
 
-     internal_PUSH_GPR_ACK  = new Tcontrol_t [_param->_nb_push];
-     internal_PUSH_SPR_ACK  = new Tcontrol_t [_param->_nb_push];
-     internal_PUSH_GPR_BANK = new uint32_t   [_param->_nb_push];
-     internal_PUSH_SPR_BANK = new uint32_t   [_param->_nb_push];
+     ALLOC1(internal_PUSH_GPR_ACK ,Tcontrol_t,_param->_nb_push);
+     ALLOC1(internal_PUSH_SPR_ACK ,Tcontrol_t,_param->_nb_push);
+     ALLOC1(internal_PUSH_GPR_BANK,uint32_t  ,_param->_nb_push);
+     ALLOC1(internal_PUSH_SPR_BANK,uint32_t  ,_param->_nb_push);
        }
+
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     _priority_gpr = new generic::priority::Priority (_name+"_priority_gpr",
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_deallocation.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_deallocation.cpp	(revision 112)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/include/Free_List_unit.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -29,30 +30,30 @@
 	delete    in_NRESET;
 
-	delete []  in_POP_VAL        ;
-	delete [] out_POP_ACK        ;
-	delete []  in_POP_GPR_VAL    ;
-	delete [] out_POP_GPR_NUM_REG;
-	delete []  in_POP_SPR_VAL    ;
-	delete [] out_POP_SPR_NUM_REG;
+        DELETE1_SIGNAL( in_POP_VAL         ,_param->_nb_pop,1);
+        DELETE1_SIGNAL(out_POP_ACK         ,_param->_nb_pop,1);
+        DELETE1_SIGNAL( in_POP_GPR_VAL     ,_param->_nb_pop,1                             );
+        DELETE1_SIGNAL(out_POP_GPR_NUM_REG ,_param->_nb_pop,_param->_size_general_register);
+        DELETE1_SIGNAL( in_POP_SPR_VAL     ,_param->_nb_pop,1                             );
+        DELETE1_SIGNAL(out_POP_SPR_NUM_REG ,_param->_nb_pop,_param->_size_special_register);
 
-	delete []  in_PUSH_GPR_VAL    ;
-	delete [] out_PUSH_GPR_ACK    ;
-	delete []  in_PUSH_GPR_NUM_REG;
+        DELETE1_SIGNAL( in_PUSH_GPR_VAL    ,_param->_nb_push,1);
+        DELETE1_SIGNAL(out_PUSH_GPR_ACK    ,_param->_nb_push,1);
+        DELETE1_SIGNAL( in_PUSH_GPR_NUM_REG,_param->_nb_push,_param->_size_general_register);
 
-	delete []  in_PUSH_SPR_VAL    ;
-	delete [] out_PUSH_SPR_ACK    ;
-	delete []  in_PUSH_SPR_NUM_REG;
+        DELETE1_SIGNAL( in_PUSH_SPR_VAL    ,_param->_nb_push,1);
+        DELETE1_SIGNAL(out_PUSH_SPR_ACK    ,_param->_nb_push,1);
+        DELETE1_SIGNAL( in_PUSH_SPR_NUM_REG,_param->_nb_push,_param->_size_special_register);
 
-        delete [] _gpr_list;
-        delete [] _spr_list;
-        
-        delete [] internal_POP_ACK     ;
-        delete [] internal_POP_GPR_BANK;
-        delete [] internal_POP_SPR_BANK;
-        
-        delete [] internal_PUSH_GPR_ACK ;
-        delete [] internal_PUSH_SPR_ACK ;
-        delete [] internal_PUSH_GPR_BANK;
-        delete [] internal_PUSH_SPR_BANK;
+        DELETE1(_gpr_list             ,_param->_nb_bank);
+        DELETE1(_spr_list             ,_param->_nb_bank);
+
+        DELETE1(internal_POP_ACK      ,_param->_nb_pop);
+        DELETE1(internal_POP_GPR_BANK ,_param->_nb_pop);
+        DELETE1(internal_POP_SPR_BANK ,_param->_nb_pop);
+
+        DELETE1(internal_PUSH_GPR_ACK ,_param->_nb_push);
+        DELETE1(internal_PUSH_SPR_ACK ,_param->_nb_push);
+        DELETE1(internal_PUSH_GPR_BANK,_param->_nb_push);
+        DELETE1(internal_PUSH_SPR_BANK,_param->_nb_push);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp	(revision 112)
@@ -51,5 +51,6 @@
 
 #ifdef STATISTICS
-              (*_stat_nb_inst_pop) ++;
+              if (usage_is_set(_usage,USE_STATISTICS))
+                (*_stat_nb_inst_pop) ++;
 #endif
 
@@ -57,5 +58,6 @@
                 {
 #ifdef STATISTICS
-                  (*_stat_nb_inst_pop_gpr) ++;
+                  if (usage_is_set(_usage,USE_STATISTICS))
+                    (*_stat_nb_inst_pop_gpr) ++;
 #endif
                   _gpr_list [internal_POP_GPR_BANK[i]].pop_front();
@@ -65,5 +67,6 @@
                 {
 #ifdef STATISTICS
-                  (*_stat_nb_inst_pop_spr) ++;
+                  if (usage_is_set(_usage,USE_STATISTICS))
+                    (*_stat_nb_inst_pop_spr) ++;
 #endif
                   _spr_list [internal_POP_SPR_BANK[i]].pop_front();
@@ -82,5 +85,6 @@
 
 #ifdef STATISTICS
-              (*_stat_nb_inst_push_gpr) ++;
+              if (usage_is_set(_usage,USE_STATISTICS))
+                (*_stat_nb_inst_push_gpr) ++;
 #endif
 
@@ -98,5 +102,6 @@
 
 #ifdef STATISTICS
-              (*_stat_nb_inst_push_spr) ++;
+              if (usage_is_set(_usage,USE_STATISTICS))
+                (*_stat_nb_inst_push_spr) ++;
 #endif
 
@@ -105,6 +110,8 @@
 
 #ifdef STATISTICS
-          for (uint32_t i=0; i<_param->_nb_bank; ++i)
-            {
+        if (usage_is_set(_usage,USE_STATISTICS))
+          for (uint32_t i=0; i<_param->_nb_bank; ++i)
+            {
+              
               (*(_stat_bank_gpr_nb_elt [i])) += _gpr_list[i].size();
               (*(_stat_bank_spr_nb_elt [i])) += _spr_list[i].size();
