summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/activity.cc5
-rw-r--r--src/cpu/activity.hh1
-rw-r--r--src/cpu/base.cc3
-rw-r--r--src/cpu/o3/regfile.hh12
4 files changed, 21 insertions, 0 deletions
diff --git a/src/cpu/activity.cc b/src/cpu/activity.cc
index 13613cffc..87875c683 100644
--- a/src/cpu/activity.cc
+++ b/src/cpu/activity.cc
@@ -46,6 +46,11 @@ ActivityRecorder::ActivityRecorder(const string &name, int num_stages,
std::memset(stageActive, 0, numStages);
}
+ActivityRecorder::~ActivityRecorder()
+{
+ delete[] stageActive;
+}
+
void
ActivityRecorder::activity()
{
diff --git a/src/cpu/activity.hh b/src/cpu/activity.hh
index f119c95cc..7913bf5e7 100644
--- a/src/cpu/activity.hh
+++ b/src/cpu/activity.hh
@@ -54,6 +54,7 @@ class ActivityRecorder
public:
ActivityRecorder(const std::string &name, int num_stages,
int longest_latency, int count);
+ ~ActivityRecorder();
/** Records that there is activity this cycle. */
void activity();
diff --git a/src/cpu/base.cc b/src/cpu/base.cc
index c942cad44..4017140a5 100644
--- a/src/cpu/base.cc
+++ b/src/cpu/base.cc
@@ -243,6 +243,9 @@ BaseCPU::enableFunctionTrace()
BaseCPU::~BaseCPU()
{
+ delete profileEvent;
+ delete[] comLoadEventQueue;
+ delete[] comInstEventQueue;
}
void
diff --git a/src/cpu/o3/regfile.hh b/src/cpu/o3/regfile.hh
index 117c955c2..d0f50c85c 100644
--- a/src/cpu/o3/regfile.hh
+++ b/src/cpu/o3/regfile.hh
@@ -75,6 +75,11 @@ class PhysRegFile
PhysRegFile(O3CPU *_cpu, unsigned _numPhysicalIntRegs,
unsigned _numPhysicalFloatRegs);
+ /**
+ * Destructor to free resources
+ */
+ ~PhysRegFile();
+
//Everything below should be pretty well identical to the normal
//register file that exists within AlphaISA class.
//The duplication is unfortunate but it's better than having
@@ -197,4 +202,11 @@ PhysRegFile<Impl>::PhysRegFile(O3CPU *_cpu, unsigned _numPhysicalIntRegs,
memset(floatRegFile, 0, sizeof(PhysFloatReg) * numPhysicalFloatRegs);
}
+template <class Impl>
+PhysRegFile<Impl>::~PhysRegFile()
+{
+ delete intRegFile;
+ delete floatRegFile;
+}
+
#endif