Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 112)
@@ -58,5 +58,5 @@
     // ~~~~~[ Interface : "ifetch" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC2_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context, _param->_nb_inst_fetch[it1]);
+      ALLOC2_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context, _param->_nb_inst_fetch[it1]);
 
       
@@ -64,8 +64,11 @@
       _ALLOC2_VALACK_OUT(out_IFETCH_ACK        ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]);
       _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]);
-    }
-    {
-      ALLOC1_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context);
+
+      ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]);
+    }
+    {
+      ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context);
       
+
       ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t         ,_param->_size_context_id      );
       ALLOC1_SIGNAL_IN (in_IFETCH_ADDRESS                    ,"address"                    ,Tgeneral_address_t ,_param->_size_instruction_address    );
@@ -75,9 +78,11 @@
       ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t  ,_param->_size_depth           );
       ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION                  ,"exception"                  ,Texception_t       ,_param->_size_exception_ifetch);
+
+      ALLOC1_INTERFACE_END(_param->_nb_context);
     }
 
     // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
     {
-      ALLOC1_INTERFACE("decod", OUT, EAST, "Instructiont decoded", _param->_nb_inst_decod);
+      ALLOC1_INTERFACE_BEGIN("decod", OUT, EAST, _("Instructiont decoded"), _param->_nb_inst_decod);
 
       ALLOC1_VALACK_OUT(out_DECOD_VAL          ,VAL);
@@ -107,9 +112,11 @@
       ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION_USE,"exception_use",Texception_t      ,_param->_size_exception_use         );
       ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception_decod       );
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
     }
 
     // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC1_INTERFACE("predict",OUT,NORTH,"Decod a branch -> inform the branch predictor.",_param->_nb_inst_decod);
+      ALLOC1_INTERFACE_BEGIN("predict",OUT,NORTH,_("Decod a branch -> inform the branch predictor."),_param->_nb_inst_decod);
 
       ALLOC1_VALACK_OUT(out_PREDICT_VAL                        ,VAL);
@@ -125,27 +132,33 @@
       ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_DEST               ,"address_dest"               ,Tgeneral_data_t    ,_param->_size_instruction_address    );
       ALLOC1_SIGNAL_IN ( in_PREDICT_CAN_CONTINUE               ,"can_continue"               ,Tcontrol_t         ,1                             );
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
     }
     
     // ~~~~~[ Interface : "context" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC1_INTERFACE("context", IN, NORTH, "context's information", _param->_nb_context);
+      ALLOC1_INTERFACE_BEGIN("context", IN, NORTH, _("context's information"), _param->_nb_context);
 
       ALLOC1_SIGNAL_IN (in_CONTEXT_DECOD_ENABLE,"decod_enable",Tcontrol_t,1);
       ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH_VAL   ,"depth_val"   ,Tcontrol_t,1);
       ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH       ,"depth"       ,Tdepth_t  ,_param->_size_depth);
+
+      ALLOC1_INTERFACE_END(_param->_nb_context);
     }
 
     // ~~~~~[ Interface : "context_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
     {
-      ALLOC_INTERFACE("context_event", OUT, NORTH, "context's evenement");
-
-      ALLOC_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
-      ALLOC_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
-      ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
+      ALLOC0_INTERFACE_BEGIN("context_event", OUT, NORTH, _("context's evenement"));
+
+      ALLOC0_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
+      ALLOC0_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
+      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
+
+      ALLOC0_INTERFACE_END();
     }
 
@@ -154,13 +167,13 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-    reg_CONTEXT_ADDRESS_PREVIOUS      = new Tgeneral_data_t [_param->_nb_context];
-    reg_CONTEXT_IS_DELAY_SLOT         = new Tcontrol_t      [_param->_nb_context];
-
-    internal_CONTEXT_HAVE_TRANSACTION = new Tcontrol_t      [_param->_nb_context];
-    internal_CONTEXT_ADDRESS_PREVIOUS = new Tgeneral_data_t [_param->_nb_context];
-    internal_CONTEXT_IS_DELAY_SLOT    = new Tcontrol_t      [_param->_nb_context];
+    ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS      ,Tgeneral_data_t,_param->_nb_context);
+    ALLOC1(reg_CONTEXT_IS_DELAY_SLOT         ,Tcontrol_t     ,_param->_nb_context);
+
+    ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t     ,_param->_nb_context);
+    ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context);
+    ALLOC1(internal_CONTEXT_IS_DELAY_SLOT    ,Tcontrol_t     ,_param->_nb_context);
 
 #ifdef STATISTICS
-    internal_DECOD_VAL                = new Tcontrol_t      [_param->_nb_inst_decod];
+    ALLOC1(internal_DECOD_VAL                ,Tcontrol_t     ,_param->_nb_inst_decod);
 #endif
       }
@@ -174,36 +187,15 @@
                                                  _param->_nb_context_select);
 
-    const uint32_t nb_opcod_type = 14;
-    const uint32_t tab_opcod_type [] = {MAX_OPCOD_0,
-                                        MAX_OPCOD_1 ,
-                                        MAX_OPCOD_2 ,
-                                        MAX_OPCOD_3 ,
-                                        MAX_OPCOD_4 ,
-                                        MAX_OPCOD_5 ,
-                                        MAX_OPCOD_6 ,
-                                        MAX_OPCOD_7 ,
-                                        MAX_OPCOD_8 ,
-                                        MAX_OPCOD_9 ,
-                                        MAX_OPCOD_10,
-                                        MAX_OPCOD_11,
-                                        MAX_OPCOD_12,
-                                        MAX_OPCOD_13};
-    
-    _function_decod  = new function_decod_t *** [_param->_nb_context];
-    _function_custom = new function_decod_t *** [_param->_nb_context];
+    ALLOC3(_function_decod ,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
+    ALLOC3(_function_custom,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
+
     for (uint32_t i=0; i<_param->_nb_context; i++)
       {
-        _function_decod  [i] = new function_decod_t ** [nb_opcod_type];
-        _function_custom [i] = new function_decod_t ** [nb_opcod_type];
         for (uint32_t j=0; j<nb_opcod_type; j++)
-          {
-            _function_decod  [i][j] = new function_decod_t * [tab_opcod_type[j]];
-            _function_custom [i][j] = new function_decod_t * [tab_opcod_type[j]];
-            for (uint32_t k=0; k<tab_opcod_type[j]; k++)
-              {
-                _function_decod  [i][j][k] = &(instruction_illegal);
-                _function_custom [i][j][k] = &(instruction_illegal);
-              }
-          }
+          for (uint32_t k=0; k<tab_opcod_type[j]; k++)
+            {
+              _function_decod  [i][j][k] = &(instruction_illegal);
+              _function_custom [i][j][k] = &(instruction_illegal);
+            }
 
         // Create indirection
@@ -454,7 +446,7 @@
       }
 
-    _decod_instruction = new decod_instruction_t;
-
-    _decod_param = new decod_param_t * [_param->_nb_context];
+    ALLOC0(_decod_instruction,decod_instruction_t);
+    ALLOC1(_decod_param,decod_param_t *,_param->_nb_context);
+
     for (uint32_t i=0; i<_param->_nb_context; i++)
       _decod_param [i] = new decod_param_t (_param->_size_general_data,
