source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp @ 101

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

1) Add soc test
2) fix bug (Pc management, Decod and execute, Update prediction ...)

  • Property svn:keywords set to Id
File size: 3.0 KB
Line 
1/*
2 * $Id: Execute_queue_deallocation.cpp 101 2009-01-15 17:19:08Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace multi_write_unit {
16namespace write_unit {
17namespace execute_queue {
18
19
20#undef  FUNCTION
21#define FUNCTION "Execute_queue::deallocation"
22  void Execute_queue::deallocation (void)
23  {
24    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
25
26    if (usage_is_set(_usage,USE_SYSTEMC))
27      {
28        delete    in_CLOCK ;
29        delete    in_NRESET;
30
31        // -----[ Interface "execute_queue_in" ]--------------------------------   
32        delete      in_EXECUTE_QUEUE_IN_VAL          ;
33        delete     out_EXECUTE_QUEUE_IN_ACK          ;
34        if (_param->_have_port_context_id)
35        delete      in_EXECUTE_QUEUE_IN_CONTEXT_ID   ;
36        if (_param->_have_port_front_end_id)
37        delete      in_EXECUTE_QUEUE_IN_FRONT_END_ID ;
38        if (_param->_have_port_ooo_engine_id)
39        delete      in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;
40        if (_param->_have_port_rob_ptr)
41        delete      in_EXECUTE_QUEUE_IN_PACKET_ID    ;
42//      delete      in_EXECUTE_QUEUE_IN_OPERATION    ;
43//      delete      in_EXECUTE_QUEUE_IN_TYPE         ;
44        delete      in_EXECUTE_QUEUE_IN_FLAGS        ;
45        delete      in_EXECUTE_QUEUE_IN_EXCEPTION    ;
46        delete      in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ;
47        delete      in_EXECUTE_QUEUE_IN_ADDRESS      ;
48        delete      in_EXECUTE_QUEUE_IN_DATA         ;
49
50        // -----[ Interface "execute_queue_out" ]-------------------------------   
51        delete     out_EXECUTE_QUEUE_OUT_VAL          ;
52        delete      in_EXECUTE_QUEUE_OUT_ACK          ;
53        if (_param->_have_port_context_id)
54        delete     out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ;
55        if (_param->_have_port_front_end_id)
56        delete     out_EXECUTE_QUEUE_OUT_FRONT_END_ID ;
57        if (_param->_have_port_ooo_engine_id)
58        delete     out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;
59        if (_param->_have_port_rob_ptr)
60        delete     out_EXECUTE_QUEUE_OUT_PACKET_ID    ;
61//      delete     out_EXECUTE_QUEUE_OUT_OPERATION    ;
62//      delete     out_EXECUTE_QUEUE_OUT_TYPE         ;
63        delete     out_EXECUTE_QUEUE_OUT_FLAGS        ;
64        delete     out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
65        delete     out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;
66        delete     out_EXECUTE_QUEUE_OUT_ADDRESS      ;
67        delete     out_EXECUTE_QUEUE_OUT_DATA         ;
68      }
69
70    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
71    while (not _queue->empty())
72      {
73        delete _queue->front();
74        _queue->pop_front();
75      }
76    delete _queue;
77
78    delete _component;
79
80    log_printf(FUNC,Execute_queue,FUNCTION,"End");
81  };
82
83}; // end namespace execute_queue
84}; // end namespace write_unit
85}; // end namespace multi_write_unit
86}; // end namespace execute_loop
87}; // end namespace multi_execute_loop
88}; // end namespace core
89
90}; // end namespace behavioural
91}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.