diff options
author | Gabe Black <gabeblack@google.com> | 2014-12-05 01:47:35 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2014-12-05 01:47:35 -0800 |
commit | bacbb8ecbcee2b4c5c3fe71f415abc5852ae4a8f (patch) | |
tree | 79e771d5209f85f6d3ecf5cafcb5d9e254fa7be0 /src/cpu/simple/atomic.cc | |
parent | fe48c0a32bf749358eeb95e748f9fc2247cc5480 (diff) | |
download | gem5-bacbb8ecbcee2b4c5c3fe71f415abc5852ae4a8f.tar.xz |
cpu: Only check for PC events on instruction boundaries.
Only the instruction address is actually checked, so there's no need to check
repeatedly while we're working through the microops of a macroop and that's
not changing.
Diffstat (limited to 'src/cpu/simple/atomic.cc')
-rw-r--r-- | src/cpu/simple/atomic.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cpu/simple/atomic.cc b/src/cpu/simple/atomic.cc index 8dcae01c5..aeaebcdb8 100644 --- a/src/cpu/simple/atomic.cc +++ b/src/cpu/simple/atomic.cc @@ -1,4 +1,5 @@ /* + * Copyright 2014 Google, Inc. * Copyright (c) 2012-2013 ARM Limited * All rights reserved. * @@ -518,10 +519,11 @@ AtomicSimpleCPU::tick() numCycles++; ppCycles->notify(1); - if (!curStaticInst || !curStaticInst->isDelayedCommit()) + if (!curStaticInst || !curStaticInst->isDelayedCommit()) { checkForInterrupts(); + checkPcEventQueue(); + } - checkPcEventQueue(); // We must have just got suspended by a PC event if (_status == Idle) { tryCompleteDrain(); |