projects
/
gem5.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
85c7352
)
sim: fix overflow check in simulate because Tick is now unsigned
author
Anthony Gutierrez
<atgutier@umich.edu>
Tue, 28 Aug 2012 00:53:20 +0000
(20:53 -0400)
committer
Anthony Gutierrez
<atgutier@umich.edu>
Tue, 28 Aug 2012 00:53:20 +0000
(20:53 -0400)
src/sim/simulate.cc
patch
|
blob
|
history
diff --git
a/src/sim/simulate.cc
b/src/sim/simulate.cc
index 5e69f0ff45590f3e93fa34a33167b3d47f99a2e2..238e68787d0d7256a5bda3bc9fe4bd7e952e7dba 100644
(file)
--- a/
src/sim/simulate.cc
+++ b/
src/sim/simulate.cc
@@
-49,12
+49,10
@@
simulate(Tick num_cycles)
{
inform("Entering event queue @ %d. Starting simulation...\n", curTick());
- 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
+ if (num_cycles < MaxTick - curTick())
num_cycles = curTick() + num_cycles;
+ else // counter would roll over or be set to MaxTick anyhow
+ num_cycles = MaxTick;
Event *limit_event =
new SimLoopExitEvent("simulate() limit reached", 0);