summaryrefslogtreecommitdiff
path: root/src/sim/process.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-06-26 16:49:05 -0400
committerAli Saidi <saidi@eecs.umich.edu>2006-06-26 16:49:05 -0400
commitc4be6f1e64a7bdd0c5057e2ab3f6a117444bc8ea (patch)
treebda9a1246d36fed3c8c9f23bf7d9f70b0af01bbb /src/sim/process.cc
parentdeaf940946a7381d6f77dd8732951ff5ba0d1e8c (diff)
downloadgem5-c4be6f1e64a7bdd0c5057e2ab3f6a117444bc8ea.tar.xz
add syscall emulation page table fault so we can allocate more stack pages
src/cpu/simple/base.cc: add syscall emulation page table fault so we can allocate more stack pages FaultBase::invoke will do this, we don't need to do it here src/sim/faults.hh: I have no idea why this #if was there... gone src/sim/process.cc: make stack_min actually be the current minimum --HG-- extra : convert_revision : 9786b39f2747b94654a5d77c74243cd20503add4
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r--src/sim/process.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 5080c3ac1..9cdc5b9f5 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -326,11 +326,10 @@ LiveProcess::argsInit(int intSize, int pageSize)
// set bottom of stack
stack_min = stack_base - space_needed;
// align it
- stack_min &= ~(intSize-1);
+ stack_min = roundDown(stack_min, pageSize);
stack_size = stack_base - stack_min;
// map memory
- pTable->allocate(roundDown(stack_min, pageSize),
- roundUp(stack_size, pageSize));
+ pTable->allocate(stack_min, roundUp(stack_size, pageSize));
// map out initial stack contents
Addr argv_array_base = stack_min + intSize; // room for argc