Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_deallocation.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_deallocation.cpp	(revision 88)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -42,6 +43,6 @@
 	delete []  in_PREDICT_RAS_ADDRESS         ;
 	delete []  in_PREDICT_RAS_INDEX           ;
-// 	if (_param->_have_port_depth)
-// 	delete [] out_PREDICT_UPDATE_PREDICTION_ID;
+ 	if (_param->_have_port_depth)
+ 	delete [] out_PREDICT_UPDATE_PREDICTION_ID;
 	
 	// ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -58,8 +59,9 @@
 	delete []  in_DECOD_MISS_IFETCH           ;
 	delete []  in_DECOD_MISS_DECOD            ;
-	if (_param->_have_port_max_depth)
+	if (_param->_have_port_depth)
 	delete []  in_DECOD_UPDATE_PREDICTION_ID  ;
 // 	if (_param->_have_port_depth)
 // 	delete [] out_DECOD_DEPTH                 ;
+	delete []  in_DECOD_IS_ACCURATE           ;
 	
 	// ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -68,5 +70,5 @@
 	if (_param->_have_port_context_id)
 	delete []  in_BRANCH_COMPLETE_CONTEXT_ID     ;
-	if (_param->_have_port_max_depth)
+	if (_param->_have_port_depth)
 	delete []  in_BRANCH_COMPLETE_DEPTH          ;
 	delete []  in_BRANCH_COMPLETE_ADDRESS        ;
@@ -82,5 +84,5 @@
 // 	if (_param->_have_port_context_id)
 // 	delete []  in_BRANCH_EVENT_CONTEXT_ID     ;
-// 	if (_param->_have_port_max_depth)
+// 	if (_param->_have_port_depth)
 // 	delete []  in_BRANCH_EVENT_DEPTH          ;
 // 	delete [] out_BRANCH_EVENT_MISS_PREDICTION;
@@ -109,33 +111,50 @@
 
 	// ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	if (_param->_have_port_max_depth)
+	if (_param->_have_port_depth)
 	  {
-	delete [] out_DEPTH_NB_BRANCH;
-	delete [] out_DEPTH_TAIL;
+	delete [] out_DEPTH_CURRENT;
+	delete [] out_DEPTH_MIN;
 	  }
-      }
-
-    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete [] internal_PREDICT_ACK                     ;
-    delete [] internal_DECOD_ACK                       ;
-    delete [] internal_BRANCH_COMPLETE_ACK             ;
-    delete [] internal_BRANCH_COMPLETE_MISS_PREDICTION ;
-    delete [] internal_BRANCH_COMPLETE_TAKE            ;
-    delete [] internal_BRANCH_COMPLETE_ADDRESS_DEST    ;
-    delete [] internal_BRANCH_EVENT_VAL                ;
-    delete [] internal_BRANCH_EVENT_DEPTH              ;
-    delete [] internal_UPDATE_VAL                      ;
-    delete [] internal_UPDATE_CONTEXT_ID               ;
-    delete [] internal_UPDATE_DEPTH                    ;
-
-    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-    delete [] reg_TOP;
-    delete [] reg_BOTTOM;
-    delete [] reg_NB_ELT;
-    delete [] reg_NB_ELT_UPDATE;
-    delete [] reg_NB_ELT_NEED_UPDATE;
-    for (uint32_t i=0; i<_param->_nb_context; i++)
-      delete [] reg_UPDATE_PREDICTION_TABLE [i];
-    delete [] reg_UPDATE_PREDICTION_TABLE;
+	delete [] out_DEPTH_MAX;
+        
+        // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        DELETE1(internal_PREDICT_ACK                     ,_param->_nb_inst_predict);
+        DELETE1(internal_PREDICT_UPDATE_PREDICTION_ID    ,_param->_nb_inst_predict);
+        DELETE1(internal_DECOD_ACK                       ,_param->_nb_inst_decod);
+        DELETE1(internal_DECOD_UPT_PTR_WRITE             ,_param->_nb_inst_decod);
+        DELETE1(internal_BRANCH_COMPLETE_ACK             ,_param->_nb_inst_branch_complete);
+        DELETE1(internal_BRANCH_COMPLETE_MISS_PREDICTION ,_param->_nb_inst_branch_complete);
+        DELETE1(internal_BRANCH_COMPLETE_TAKE            ,_param->_nb_inst_branch_complete);
+        DELETE1(internal_BRANCH_COMPLETE_ADDRESS_DEST    ,_param->_nb_inst_branch_complete);
+        DELETE1(internal_BRANCH_EVENT_VAL                ,_param->_nb_context);
+        DELETE1(internal_BRANCH_EVENT_DEPTH              ,_param->_nb_context);
+        DELETE1(internal_UPDATE_VAL                      ,_param->_nb_inst_update);
+        DELETE1(internal_UPDATE_VAL_WITHOUT_ACK          ,_param->_nb_inst_update);
+        DELETE1(internal_UPDATE_CONTEXT_ID               ,_param->_nb_inst_update);
+        DELETE1(internal_UPDATE_FROM_UFPT                ,_param->_nb_inst_update);
+        DELETE1(internal_UPDATE_DEPTH                    ,_param->_nb_inst_update);
+        DELETE1(internal_UPDATE_RAS                      ,_param->_nb_inst_update);
+        
+        // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+        DELETE1(reg_IS_ACCURATE                  ,_param->_nb_context);
+        
+        DELETE2(reg_UPDATE_FETCH_PREDICTION_TABLE,_param->_nb_context,_param->_size_ufpt_queue[it1]);
+        DELETE1(reg_UFPT_BOTTOM                  ,_param->_nb_context);
+        DELETE1(reg_UFPT_TOP                     ,_param->_nb_context);
+        DELETE1(reg_UFPT_UPDATE                  ,_param->_nb_context);
+        DELETE1(reg_UFPT_NB_NEED_UPDATE          ,_param->_nb_context);
+        
+        DELETE2(reg_UPDATE_PREDICTION_TABLE      ,_param->_nb_context,_param->_size_upt_queue[it1]);
+        DELETE1(reg_UPT_BOTTOM                   ,_param->_nb_context);
+        DELETE1(reg_UPT_TOP                      ,_param->_nb_context);
+        DELETE1(reg_UPT_UPDATE                   ,_param->_nb_context);
+        DELETE1(reg_UPT_NB_NEED_UPDATE           ,_param->_nb_context);
+        
+        DELETE1(reg_EVENT_STATE                  ,_param->_nb_context);
+        DELETE1(reg_EVENT_RAS_CORRUPTED          ,_param->_nb_context);
+        DELETE1(reg_EVENT_ADDRESS_SRC            ,_param->_nb_context);
+        DELETE1(reg_EVENT_ADDRESS_SRC_VAL        ,_param->_nb_context);
+        DELETE1(reg_EVENT_ADDRESS_DEST           ,_param->_nb_context);
+       }
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
