summaryrefslogtreecommitdiff
path: root/src/cpu/simple_thread.cc
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-11-02 14:58:31 -0500
committerKevin Lim <ktlim@umich.edu>2006-11-02 14:58:31 -0500
commitdd5e2cd959e61b8af094137f337e999048317ec3 (patch)
tree76ad1a4fb55e939493ff304bc395699a87b2bab2 /src/cpu/simple_thread.cc
parent64f8cd12c6a613205196bbe9dbc0fab98c4ca735 (diff)
downloadgem5-dd5e2cd959e61b8af094137f337e999048317ec3.tar.xz
More proper handling of the ports.
src/cpu/simple_thread.cc: Fix up port handling to share code. src/cpu/thread_state.cc: Separate code off into a function. src/cpu/thread_state.hh: Make a separate function that will get the CPU's memory's functional port. --HG-- extra : convert_revision : 96a9bb3c5e4b9ba5511678c0fd17f0017c8cd312
Diffstat (limited to 'src/cpu/simple_thread.cc')
-rw-r--r--src/cpu/simple_thread.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/cpu/simple_thread.cc b/src/cpu/simple_thread.cc
index 28d8bdf62..f5fa68529 100644
--- a/src/cpu/simple_thread.cc
+++ b/src/cpu/simple_thread.cc
@@ -129,6 +129,10 @@ SimpleThread::SimpleThread()
SimpleThread::~SimpleThread()
{
+#if FULL_SYSTEM
+ delete physPort;
+ delete virtPort;
+#endif
delete tc;
}
@@ -304,11 +308,9 @@ SimpleThread::getVirtPort(ThreadContext *src_tc)
if (!src_tc)
return virtPort;
- VirtualPort *vp;
- Port *mem_port;
+ VirtualPort *vp = new VirtualPort("tc-vport", src_tc);
+ Port *mem_port = getMemFuncPort();
- vp = new VirtualPort("tc-vport", src_tc);
- mem_port = system->physmem->getPort("functional");
mem_port->setPeer(vp);
vp->setPeer(mem_port);
return vp;