summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-07-05 16:01:38 -0400
committerKevin Lim <ktlim@umich.edu>2006-07-05 16:01:38 -0400
commitec72f6534c2bb6aada305815fb306680508d7a7c (patch)
tree1886edde38b2da28cb45f4e13135b1993502f45d /src/sim
parentc33b5b3fc469e8f4885254122e60d781dcb11687 (diff)
parent4201ec84b2dd7d96148bf661124dd7b5d0e7204b (diff)
downloadgem5-ec72f6534c2bb6aada305815fb306680508d7a7c.tar.xz
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem --HG-- extra : convert_revision : f5b6daa2d512f38153246fc9a39cc6560d939ebc
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/process.cc3
-rw-r--r--src/sim/syscall_emul.cc5
2 files changed, 6 insertions, 2 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 9cdc5b9f5..f989300a3 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -358,7 +358,10 @@ LiveProcess::argsInit(int intSize, int pageSize)
Addr prog_entry = objFile->entryPoint();
threadContexts[0]->setPC(prog_entry);
threadContexts[0]->setNextPC(prog_entry + sizeof(MachInst));
+
+#if THE_ISA != ALPHA_ISA //e.g. MIPS or Sparc
threadContexts[0]->setNextNPC(prog_entry + (2 * sizeof(MachInst)));
+#endif
num_processes++;
}
diff --git a/src/sim/syscall_emul.cc b/src/sim/syscall_emul.cc
index 848b6f869..e72890612 100644
--- a/src/sim/syscall_emul.cc
+++ b/src/sim/syscall_emul.cc
@@ -27,7 +27,6 @@
*
* Authors: Steve Reinhardt
* Ali Saidi
- * Korey Sewell
*/
#include <fcntl.h>
@@ -92,7 +91,9 @@ SyscallReturn
exitFunc(SyscallDesc *desc, int callnum, Process *process,
ThreadContext *tc)
{
- exitSimLoop("target called exit()", tc->getSyscallArg(0) & 0xff);
+ if (tc->exit()) {
+ exitSimLoop("target called exit()", tc->getSyscallArg(0) & 0xff);
+ }
return 1;
}