source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h @ 105

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

1) Bug fix : Load Miss Speculation (in Commit_unit, Update Prediction Table and Context State)
2) Change address, in rob write address_next.
3) Move Meta_Predictor in save directory

  • Property svn:keywords set to Id
File size: 4.0 KB
Line 
1#ifndef morpheo_behavioural_core_multi_front_end_front_end_decod_unit_decod_queue_Types_h
2#define morpheo_behavioural_core_multi_front_end_front_end_decod_unit_decod_queue_Types_h
3
4/*
5 * $Id: Types.h 105 2009-02-05 11:18:31Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/include/Types.h"
12
13namespace morpheo {
14namespace behavioural {
15namespace core {
16namespace multi_front_end {
17namespace front_end {
18namespace decod_unit {
19namespace decod_queue {
20
21  class decod_queue_entry_t
22  {
23  private: const uint32_t       _nb_inst        ;
24
25  public : Tcontrol_t         * _val            ;
26  public : Tcontext_t         * _context_id     ;
27  public : Tdepth_t           * _depth          ;
28  public : Ttype_t            * _type           ;
29  public : Toperation_t       * _operation      ;
30  public : Tcontrol_t         * _no_execute     ;
31  public : Tcontrol_t         * _is_delay_slot  ;
32  public : Tgeneral_data_t    * _address_next   ;
33  public : Tcontrol_t         * _has_immediat   ;
34  public : Tgeneral_data_t    * _immediat       ;
35  public : Tcontrol_t         * _read_ra        ;
36  public : Tgeneral_address_t * _num_reg_ra     ;
37  public : Tcontrol_t         * _read_rb        ;
38  public : Tgeneral_address_t * _num_reg_rb     ;
39  public : Tcontrol_t         * _read_rc        ;
40  public : Tspecial_address_t * _num_reg_rc     ;
41  public : Tcontrol_t         * _write_rd       ;
42  public : Tgeneral_address_t * _num_reg_rd     ;
43  public : Tcontrol_t         * _write_re       ;
44  public : Tspecial_address_t * _num_reg_re     ;
45  public : Texception_t       * _exception_use  ;
46  public : Texception_t       * _exception      ;
47
48  public :  decod_queue_entry_t (uint32_t nb_inst):
49    _nb_inst (nb_inst)
50    {
51      _val            = new Tcontrol_t         [_nb_inst];
52      _context_id     = new Tcontext_t         [_nb_inst];
53      _depth          = new Tdepth_t           [_nb_inst];
54      _type           = new Ttype_t            [_nb_inst];
55      _operation      = new Toperation_t       [_nb_inst];
56      _no_execute     = new Tcontrol_t         [_nb_inst];
57      _is_delay_slot  = new Tcontrol_t         [_nb_inst];
58      _address_next   = new Tgeneral_data_t    [_nb_inst];
59      _has_immediat   = new Tcontrol_t         [_nb_inst];
60      _immediat       = new Tgeneral_data_t    [_nb_inst];
61      _read_ra        = new Tcontrol_t         [_nb_inst];
62      _num_reg_ra     = new Tgeneral_address_t [_nb_inst];
63      _read_rb        = new Tcontrol_t         [_nb_inst];
64      _num_reg_rb     = new Tgeneral_address_t [_nb_inst];
65      _read_rc        = new Tcontrol_t         [_nb_inst];
66      _num_reg_rc     = new Tspecial_address_t [_nb_inst];
67      _write_rd       = new Tcontrol_t         [_nb_inst];
68      _num_reg_rd     = new Tgeneral_address_t [_nb_inst];
69      _write_re       = new Tcontrol_t         [_nb_inst];
70      _num_reg_re     = new Tspecial_address_t [_nb_inst];
71      _exception_use  = new Texception_t       [_nb_inst];
72      _exception      = new Texception_t       [_nb_inst];
73
74      for (uint32_t i=0; i<_nb_inst; i++)
75        _val [i]=0; // default : not valid
76    }
77
78  public : ~decod_queue_entry_t (void)
79    {
80      delete [] _val            ;
81      delete [] _context_id     ;
82      delete [] _depth          ;
83      delete [] _type           ;
84      delete [] _operation      ;
85      delete [] _no_execute     ;
86      delete [] _is_delay_slot  ;
87      delete [] _address_next   ;
88      delete [] _has_immediat   ;
89      delete [] _immediat       ;
90      delete [] _read_ra        ;
91      delete [] _num_reg_ra     ;
92      delete [] _read_rb        ;
93      delete [] _num_reg_rb     ;
94      delete [] _read_rc        ;
95      delete [] _num_reg_rc     ;
96      delete [] _write_rd       ;
97      delete [] _num_reg_rd     ;
98      delete [] _write_re       ;
99      delete [] _num_reg_re     ;
100      delete [] _exception_use  ;
101      delete [] _exception      ;
102    }
103  };
104
105}; // end namespace decod_queue
106}; // end namespace decod_unit
107}; // end namespace front_end
108}; // end namespace multi_front_end
109}; // end namespace core
110
111}; // end namespace behavioural
112}; // end namespace morpheo             
113
114#endif
Note: See TracBrowser for help on using the repository browser.