source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_deallocation.cpp @ 82

Last change on this file since 82 was 82, checked in by rosiere, 16 years ago
  • support locale (now must "just" translate)
  • update all component with new test format
  • update all component with usage
  • New component : decod queue and prediction_unit
  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1/*
2 * $Id: Update_Prediction_Table_deallocation.cpp 82 2008-05-01 16:48:45Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_front_end {
14namespace front_end {
15namespace prediction_unit {
16namespace update_prediction_table {
17
18
19#undef  FUNCTION
20#define FUNCTION "Update_Prediction_Table::deallocation"
21  void Update_Prediction_Table::deallocation (void)
22  {
23    log_printf(FUNC,Update_Prediction_Table,FUNCTION,"Begin");
24
25    if (_usage & USE_SYSTEMC)
26      {
27        delete    in_CLOCK ;
28        delete    in_NRESET;
29
30        // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31        delete []  in_PREDICT_VAL                 ;
32        delete [] out_PREDICT_ACK                 ;
33        if (_param->_have_port_context_id)
34        delete []  in_PREDICT_CONTEXT_ID          ;
35        delete []  in_PREDICT_BTB_ADDRESS_SRC     ;
36        delete []  in_PREDICT_BTB_ADDRESS_DEST    ;
37        delete []  in_PREDICT_BTB_CONDITION       ;
38        delete []  in_PREDICT_BTB_LAST_TAKE       ;
39        delete []  in_PREDICT_BTB_IS_ACCURATE     ;
40        if (_param->_have_port_history)
41        delete []  in_PREDICT_DIR_HISTORY         ;
42        delete []  in_PREDICT_RAS_ADDRESS         ;
43        delete []  in_PREDICT_RAS_INDEX           ;
44//      if (_param->_have_port_depth)
45//      delete [] out_PREDICT_UPDATE_PREDICTION_ID;
46       
47        // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48        delete []  in_DECOD_VAL                   ;
49        delete [] out_DECOD_ACK                   ;
50        if (_param->_have_port_context_id)
51        delete []  in_DECOD_CONTEXT_ID            ;
52        delete []  in_DECOD_BTB_ADDRESS_SRC       ;
53        delete []  in_DECOD_BTB_ADDRESS_DEST      ;
54        delete []  in_DECOD_BTB_CONDITION         ;
55        delete []  in_DECOD_BTB_LAST_TAKE         ;
56        delete []  in_DECOD_RAS_ADDRESS           ;
57        delete []  in_DECOD_RAS_INDEX             ;
58        delete []  in_DECOD_MISS_IFETCH           ;
59        delete []  in_DECOD_MISS_DECOD            ;
60        if (_param->_have_port_max_depth)
61        delete []  in_DECOD_UPDATE_PREDICTION_ID  ;
62//      if (_param->_have_port_depth)
63//      delete [] out_DECOD_DEPTH                 ;
64       
65        // ~~~~~[ Interface : "branch_complete" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66        delete []  in_BRANCH_COMPLETE_VAL            ;
67        delete [] out_BRANCH_COMPLETE_ACK            ;
68        if (_param->_have_port_context_id)
69        delete []  in_BRANCH_COMPLETE_CONTEXT_ID     ;
70        if (_param->_have_port_max_depth)
71        delete []  in_BRANCH_COMPLETE_DEPTH          ;
72        delete []  in_BRANCH_COMPLETE_ADDRESS        ;
73        delete []  in_BRANCH_COMPLETE_FLAG           ;
74        delete [] out_BRANCH_COMPLETE_MISS_PREDICTION;
75        delete [] out_BRANCH_COMPLETE_TAKE           ;
76        delete [] out_BRANCH_COMPLETE_ADDRESS_SRC    ;
77        delete [] out_BRANCH_COMPLETE_ADDRESS_DEST   ;
78
79        // ~~~~~[ Interface : "branch_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80        delete [] out_BRANCH_EVENT_VAL            ;
81        delete []  in_BRANCH_EVENT_ACK            ;
82//      if (_param->_have_port_context_id)
83//      delete []  in_BRANCH_EVENT_CONTEXT_ID     ;
84//      if (_param->_have_port_max_depth)
85//      delete []  in_BRANCH_EVENT_DEPTH          ;
86//      delete [] out_BRANCH_EVENT_MISS_PREDICTION;
87        delete [] out_BRANCH_EVENT_ADDRESS_SRC    ;
88        delete [] out_BRANCH_EVENT_ADDRESS_DEST   ;
89       
90        // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91        delete [] out_UPDATE_VAL                  ;
92        delete []  in_UPDATE_ACK                  ;
93        if (_param->_have_port_context_id)
94        delete [] out_UPDATE_CONTEXT_ID           ;
95        delete [] out_UPDATE_MISS_PREDICTION      ;
96        delete [] out_UPDATE_DIRECTION_GOOD       ;
97        delete [] out_UPDATE_BTB_VAL              ;
98        delete [] out_UPDATE_BTB_ADDRESS_SRC      ;
99        delete [] out_UPDATE_BTB_ADDRESS_DEST     ;
100        delete [] out_UPDATE_BTB_CONDITION        ;
101        delete [] out_UPDATE_DIR_VAL              ;
102        if (_param->_have_port_history)
103        delete [] out_UPDATE_DIR_HISTORY          ;
104        delete [] out_UPDATE_RAS_VAL              ;
105        delete [] out_UPDATE_RAS_PUSH             ;
106        delete [] out_UPDATE_RAS_ADDRESS          ;
107        delete [] out_UPDATE_RAS_INDEX            ;
108        delete [] out_UPDATE_RAS_PREDICTION_IFETCH;
109
110        // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111        if (_param->_have_port_max_depth)
112          {
113        delete [] out_DEPTH_NB_BRANCH;
114        delete [] out_DEPTH_TAIL;
115          }
116      }
117
118    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
119    delete [] internal_PREDICT_ACK                     ;
120    delete [] internal_DECOD_ACK                       ;
121    delete [] internal_BRANCH_COMPLETE_ACK             ;
122    delete [] internal_BRANCH_COMPLETE_MISS_PREDICTION ;
123    delete [] internal_BRANCH_COMPLETE_TAKE            ;
124    delete [] internal_BRANCH_COMPLETE_ADDRESS_DEST    ;
125    delete [] internal_BRANCH_EVENT_VAL                ;
126    delete [] internal_BRANCH_EVENT_DEPTH              ;
127    delete [] internal_UPDATE_VAL                      ;
128    delete [] internal_UPDATE_CONTEXT_ID               ;
129    delete [] internal_UPDATE_DEPTH                    ;
130
131    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
132    delete [] reg_TOP;
133    delete [] reg_BOTTOM;
134    delete [] reg_NB_ELT;
135    delete [] reg_NB_ELT_UPDATE;
136    delete [] reg_NB_ELT_NEED_UPDATE;
137    for (uint32_t i=0; i<_param->_nb_context; i++)
138      delete [] reg_UPDATE_PREDICTION_TABLE [i];
139    delete [] reg_UPDATE_PREDICTION_TABLE;
140
141    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
142
143    delete _component;
144
145    log_printf(FUNC,Update_Prediction_Table,FUNCTION,"End");
146  };
147
148}; // end namespace update_prediction_table
149}; // end namespace prediction_unit
150}; // end namespace front_end
151}; // end namespace multi_front_end
152}; // end namespace core
153
154}; // end namespace behavioural
155}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.