source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Parameters.cpp

Last change on this file was 128, checked in by rosiere, 15 years ago

1) Correct bug in link two signal
2) Fix error detected with valgrind
3) modif distexe script

  • Property svn:keywords set to Id
File size: 3.2 KB
Line 
1/*
2 * $Id: Parameters.cpp 128 2009-06-26 08:43:23Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/include/Parameters.h"
9#include "Behavioural/include/Allocation.h"
10#include "Common/include/BitManipulation.h"
11
12namespace morpheo {
13namespace behavioural {
14namespace core {
15namespace multi_front_end {
16namespace front_end {
17namespace prediction_unit {
18namespace direction {
19namespace meta_predictor {
20namespace meta_predictor_glue {
21
22
23#undef  FUNCTION
24#define FUNCTION "Meta_Predictor_Glue::Parameters"
25  Parameters::Parameters (uint32_t   nb_inst_predict         ,
26                          uint32_t   nb_inst_update          ,
27                          uint32_t   nb_predictor                  ,
28                          uint32_t * predictor_size_history        ,//[nb_predictor]
29                          bool     * predictor_update_on_prediction,//[nb_predictor]
30                          bool       is_toplevel             )
31  {
32    log_begin(Meta_Predictor_Glue,FUNCTION);
33
34    _nb_inst_predict                = nb_inst_predict               ;
35    _nb_inst_update                 = nb_inst_update                ;
36    _nb_predictor                   = nb_predictor                  ;
37    _predictor_size_history         = predictor_size_history        ;
38    _predictor_update_on_prediction = predictor_update_on_prediction;
39
40    _size_history = 0;
41    for (uint32_t i=0; i<_nb_predictor; ++i)
42      _size_history += _predictor_size_history [i];
43
44    test();
45
46    ALLOC1(_predictor_history_shift    ,uint32_t  ,_nb_predictor);
47    ALLOC1(_predictor_history_shift_msb,uint32_t  ,_nb_predictor);
48    ALLOC1(_predictor_history_mask     ,Thistory_t,_nb_predictor);
49
50    uint32_t shift = 0;
51    for (uint32_t i=0; i<_nb_predictor; ++i)
52      {
53        _predictor_history_shift     [i] = shift;
54        _predictor_history_shift_msb [i] = _predictor_size_history [i]-1;
55        _predictor_history_mask      [i] = gen_mask<Thistory_t>(_predictor_size_history [i]);
56
57        shift += _predictor_size_history [i];
58      }
59
60    if (is_toplevel)
61      {
62        copy();
63      }
64
65    log_end(Meta_Predictor_Glue,FUNCTION);
66  };
67 
68// #undef  FUNCTION
69// #define FUNCTION "Meta_Predictor_Glue::Parameters (copy)"
70//   Parameters::Parameters (Parameters & param)
71//   {
72//     log_begin(Meta_Predictor_Glue,FUNCTION);
73//     test();
74//     log_end(Meta_Predictor_Glue,FUNCTION);
75//   };
76
77#undef  FUNCTION
78#define FUNCTION "Meta_Predictor_Glue::~Parameters"
79  Parameters::~Parameters (void) 
80  {
81    log_begin(Meta_Predictor_Glue,FUNCTION);
82
83    DELETE1(_predictor_history_mask     ,_nb_predictor);
84    DELETE1(_predictor_history_shift_msb,_nb_predictor);
85    DELETE1(_predictor_history_shift    ,_nb_predictor);
86
87    log_end(Meta_Predictor_Glue,FUNCTION);
88  };
89
90#undef  FUNCTION
91#define FUNCTION "Meta_Predictor_Glue::copy"
92  void Parameters::copy (void) 
93  {
94    log_begin(Meta_Predictor_Glue,FUNCTION);
95    log_end(Meta_Predictor_Glue,FUNCTION);
96  };
97
98}; // end namespace meta_predictor_glue
99}; // end namespace meta_predictor
100}; // end namespace direction
101}; // end namespace prediction_unit
102}; // end namespace front_end
103}; // end namespace multi_front_end
104}; // end namespace core
105
106}; // end namespace behavioural
107}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.