cpu: Always mask the snoop address when performing lock check

Ensure the snoop address check is always using a cache-block aligned
address. This patch updates Alpha and Mips to match the other ISAs.
This commit is contained in:
Andreas Hansson
2014-12-02 06:08:00 -05:00
parent 810349a8a7
commit 74bbe20141
2 changed files with 2 additions and 6 deletions

View File

@@ -76,9 +76,7 @@ handleLockedSnoop(XC *xc, PacketPtr pkt, Addr cacheBlockMask)
return;
Addr locked_addr = xc->readMiscReg(MISCREG_LOCKADDR) & cacheBlockMask;
Addr snoop_addr = pkt->getAddr();
assert((cacheBlockMask & snoop_addr) == snoop_addr);
Addr snoop_addr = pkt->getAddr() & cacheBlockMask;
if (locked_addr == snoop_addr)
xc->setMiscReg(MISCREG_LOCKFLAG, false);

View File

@@ -66,9 +66,7 @@ handleLockedSnoop(XC *xc, PacketPtr pkt, Addr cacheBlockMask)
return;
Addr locked_addr = xc->readMiscReg(MISCREG_LLADDR) & cacheBlockMask;
Addr snoop_addr = pkt->getAddr();
assert((cacheBlockMask & snoop_addr) == snoop_addr);
Addr snoop_addr = pkt->getAddr() & cacheBlockMask;
if (locked_addr == snoop_addr)
xc->setMiscReg(MISCREG_LLFLAG, false);