source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 3.4 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace stage_1_ifetch {
14namespace predictor {
15namespace meta_predictor {
16namespace two_level_branch_predictor {
17
18  void Two_Level_Branch_Predictor::deallocation (void)
19  {
20    log_printf(FUNC,Two_Level_Branch_Predictor,"deallocation","Begin");
21
22    delete in_CLOCK;
23
24    for (uint32_t i=0; i<_param._nb_prediction; i++)
25      {
26        delete  in_PREDICT_VAL                 [i];
27        delete out_PREDICT_ACK                 [i];
28        delete  in_PREDICT_ADDRESS             [i];
29        if (_param._have_bht)
30        delete out_PREDICT_BHT_HISTORY         [i];
31        if (_param._have_pht)
32        delete out_PREDICT_PHT_HISTORY         [i];
33        if (_param._have_bht)
34          {
35        delete signal_PREDICT_BHT_ACK          [i];
36        delete signal_PREDICT_BHT_ADDRESS      [i];
37        delete signal_PREDICT_BHT_HISTORY      [i];
38          }
39        if (_param._have_pht)
40          {
41        delete signal_PREDICT_PHT_ACK          [i];
42        delete signal_PREDICT_PHT_ADDRESS      [i];
43          }
44
45      }
46
47    delete  in_PREDICT_VAL        ;
48    delete out_PREDICT_ACK        ;
49    delete  in_PREDICT_ADDRESS    ;
50    if (_param._have_bht)
51    delete out_PREDICT_BHT_HISTORY;
52    if (_param._have_pht)
53    delete out_PREDICT_PHT_HISTORY;
54    if (_param._have_bht)
55      {
56    delete signal_PREDICT_BHT_ACK    ;
57    delete signal_PREDICT_BHT_ADDRESS;
58    delete signal_PREDICT_BHT_HISTORY;
59      }
60    if (_param._have_pht)
61      {
62    delete signal_PREDICT_PHT_ACK    ;
63    delete signal_PREDICT_PHT_ADDRESS;
64      }
65
66    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
67      {
68        delete  in_BRANCH_COMPLETE_VAL         [i];
69        delete out_BRANCH_COMPLETE_ACK         [i];
70        delete  in_BRANCH_COMPLETE_ADDRESS     [i];
71        if (_param._have_bht)
72        delete  in_BRANCH_COMPLETE_BHT_HISTORY [i];
73        if (_param._have_bht)
74        delete  in_BRANCH_COMPLETE_PHT_HISTORY [i];
75        delete  in_BRANCH_COMPLETE_HIT         [i];
76        if (_param._have_bht)
77          {
78        delete signal_BRANCH_COMPLETE_BHT_ACK     [i];
79        delete signal_BRANCH_COMPLETE_BHT_ADDRESS [i]; 
80          }
81        if (_param._have_pht)
82          {
83        delete signal_BRANCH_COMPLETE_PHT_ACK     [i];
84        delete signal_BRANCH_COMPLETE_PHT_ADDRESS [i]; 
85          }
86      }
87
88    delete  in_BRANCH_COMPLETE_VAL        ;
89    delete out_BRANCH_COMPLETE_ACK        ;
90    delete  in_BRANCH_COMPLETE_ADDRESS    ;
91    if (_param._have_bht)
92    delete  in_BRANCH_COMPLETE_BHT_HISTORY;
93    if (_param._have_pht)
94    delete  in_BRANCH_COMPLETE_PHT_HISTORY;
95    delete  in_BRANCH_COMPLETE_HIT        ;
96    if (_param._have_bht)
97      {
98    delete signal_BRANCH_COMPLETE_BHT_ACK    ;
99    delete signal_BRANCH_COMPLETE_BHT_ADDRESS; 
100      }
101    if (_param._have_pht)
102      {
103    delete signal_BRANCH_COMPLETE_PHT_ACK    ;
104    delete signal_BRANCH_COMPLETE_PHT_ADDRESS; 
105      }
106
107    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
108
109    if (_param._have_bht)
110    delete component_Branch_History_Table ;
111    if (_param._have_pht)
112    delete component_Pattern_History_Table;
113    delete component_Two_Level_Branch_Predictor_Glue;
114
115    log_printf(FUNC,Two_Level_Branch_Predictor,"deallocation","End");
116  };
117
118}; // end namespace two_level_branch_predictor
119}; // end namespace meta_predictor
120}; // end namespace predictor
121}; // end namespace stage_1_ifetch
122
123}; // end namespace behavioural
124}; // end namespace morpheo             
125#endif
Note: See TracBrowser for help on using the repository browser.