diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2006-07-18 18:23:23 -0400 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2006-07-18 18:23:23 -0400 |
commit | 44974a4462e019cfc5c65d20ad620faa9bc7f8cf (patch) | |
tree | 94f25a8a565021f97cbf6f28a37accdf157bbafc /src/sim/process.cc | |
parent | 15a8f050605919579e81b6abb98a0b596334216d (diff) | |
parent | fe9e851e8c0a52ee412350036c94cc61c9b8dc04 (diff) | |
download | gem5-44974a4462e019cfc5c65d20ad620faa9bc7f8cf.tar.xz |
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision : 516c357f98c7a571c70362babd3fa162fbc2ed5a
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r-- | src/sim/process.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc index 5080c3ac1..f989300a3 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 @@ -359,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++; } |