simplify maxtick parsing in both the python and the c++.
configs/common/Simulation.py:
simplify maxtick code a little bit - instead of checking for -1, just set it at MaxTick.
src/python/m5/__init__.py:
make a new m5 param called MaxTick.
src/sim/host.hh:
fix the M5 def. of MaxTick
src/sim/main.cc:
Simplify the MaxTick/num_cycles parsing within main.cc
--HG--
extra : convert_revision : f800addfbc1323591c2e05b892276b439b671668
This commit is contained in:
@@ -39,6 +39,9 @@ from cc_main import simulate, SimLoopExitEvent
|
||||
# import the m5 compile options
|
||||
import defines
|
||||
|
||||
# define a MaxTick parameter
|
||||
MaxTick = 2**63 - 1
|
||||
|
||||
# define this here so we can use it right away if necessary
|
||||
def panic(string):
|
||||
print >>sys.stderr, 'panic:', string
|
||||
|
||||
@@ -56,7 +56,7 @@ typedef int64_t Counter;
|
||||
*/
|
||||
typedef int64_t Tick;
|
||||
|
||||
const Tick MaxTick = (1LL << 62);
|
||||
const Tick MaxTick = (1LL << 63) - 1;
|
||||
|
||||
/**
|
||||
* Address type
|
||||
|
||||
@@ -309,18 +309,14 @@ finalInit()
|
||||
* @return The SimLoopExitEvent that caused the loop to exit.
|
||||
*/
|
||||
SimLoopExitEvent *
|
||||
simulate(Tick num_cycles = -1)
|
||||
simulate(Tick num_cycles = MaxTick)
|
||||
{
|
||||
warn("Entering event queue @ %d. Starting simulation...\n", curTick);
|
||||
|
||||
// Fix up num_cycles. Special default value -1 means simulate
|
||||
// "forever"... schedule event at MaxTick just to be safe.
|
||||
// Otherwise it's a delta for additional cycles to simulate past
|
||||
// curTick, and thus must be non-negative.
|
||||
if (num_cycles == -1)
|
||||
num_cycles = MaxTick;
|
||||
else if (num_cycles < 0)
|
||||
if (num_cycles < 0)
|
||||
fatal("simulate: num_cycles must be >= 0 (was %d)\n", num_cycles);
|
||||
else if (curTick + num_cycles < 0) //Overflow
|
||||
num_cycles = MaxTick;
|
||||
else
|
||||
num_cycles = curTick + num_cycles;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user