summaryrefslogtreecommitdiff
path: root/src/cpu/pc_event.cc
diff options
context:
space:
mode:
authorAnders Handler <s052838@student.dtu.dk>2012-01-09 20:05:07 -0500
committerAnders Handler <s052838@student.dtu.dk>2012-01-09 20:05:07 -0500
commitb587d511c3819576ce1195b59416083cbd42522a (patch)
tree47c18fa230e5c4e9450321f098f3e985fa4d908e /src/cpu/pc_event.cc
parente308208f302b6bccff15f7c694e7ed334e870942 (diff)
downloadgem5-b587d511c3819576ce1195b59416083cbd42522a.tar.xz
CPU: Remove Alpha-specific PC alignment check.
Diffstat (limited to 'src/cpu/pc_event.cc')
-rw-r--r--src/cpu/pc_event.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cpu/pc_event.cc b/src/cpu/pc_event.cc
index f9955d014..385a83b27 100644
--- a/src/cpu/pc_event.cc
+++ b/src/cpu/pc_event.cc
@@ -84,7 +84,9 @@ PCEventQueue::schedule(PCEvent *event)
bool
PCEventQueue::doService(ThreadContext *tc)
{
- Addr pc = tc->instAddr() & ~0x3;
+ // This will fail to break on Alpha PALcode addresses, but that is
+ // a rare use case.
+ Addr pc = tc->instAddr();
int serviced = 0;
range_t range = equal_range(pc);
for (iterator i = range.first; i != range.second; ++i) {
@@ -92,7 +94,7 @@ PCEventQueue::doService(ThreadContext *tc)
// another event. This for example, prevents two invocations
// of the SkipFuncEvent. Maybe we should have separate PC
// event queues for each processor?
- if (pc != (tc->instAddr() & ~0x3))
+ if (pc != tc->instAddr())
continue;
DPRINTF(PCEvent, "PC based event serviced at %#x: %s\n",