atomic.cc (10464:2a0fe8bca031) | atomic.cc (10529:05b5a6cf3521) |
---|---|
1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 258 unchanged lines hidden (view full) --- 267 268 269Tick 270AtomicSimpleCPU::AtomicCPUDPort::recvAtomicSnoop(PacketPtr pkt) 271{ 272 DPRINTF(SimpleCPU, "received snoop pkt for addr:%#x %s\n", pkt->getAddr(), 273 pkt->cmdString()); 274 | 1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 258 unchanged lines hidden (view full) --- 267 268 269Tick 270AtomicSimpleCPU::AtomicCPUDPort::recvAtomicSnoop(PacketPtr pkt) 271{ 272 DPRINTF(SimpleCPU, "received snoop pkt for addr:%#x %s\n", pkt->getAddr(), 273 pkt->cmdString()); 274 |
275 // X86 ISA: Snooping an invalidation for monitor/mwait 276 AtomicSimpleCPU *cpu = (AtomicSimpleCPU *)(&owner); 277 if(cpu->getAddrMonitor()->doMonitor(pkt)) { 278 cpu->wakeup(); 279 } 280 |
|
275 // if snoop invalidates, release any associated locks 276 if (pkt->isInvalidate()) { 277 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n", 278 pkt->getAddr()); 279 TheISA::handleLockedSnoop(cpu->thread, pkt, cacheBlockMask); 280 } 281 282 return 0; 283} 284 285void 286AtomicSimpleCPU::AtomicCPUDPort::recvFunctionalSnoop(PacketPtr pkt) 287{ 288 DPRINTF(SimpleCPU, "received snoop pkt for addr:%#x %s\n", pkt->getAddr(), 289 pkt->cmdString()); 290 | 281 // if snoop invalidates, release any associated locks 282 if (pkt->isInvalidate()) { 283 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n", 284 pkt->getAddr()); 285 TheISA::handleLockedSnoop(cpu->thread, pkt, cacheBlockMask); 286 } 287 288 return 0; 289} 290 291void 292AtomicSimpleCPU::AtomicCPUDPort::recvFunctionalSnoop(PacketPtr pkt) 293{ 294 DPRINTF(SimpleCPU, "received snoop pkt for addr:%#x %s\n", pkt->getAddr(), 295 pkt->cmdString()); 296 |
297 // X86 ISA: Snooping an invalidation for monitor/mwait 298 AtomicSimpleCPU *cpu = (AtomicSimpleCPU *)(&owner); 299 if(cpu->getAddrMonitor()->doMonitor(pkt)) { 300 cpu->wakeup(); 301 } 302 |
|
291 // if snoop invalidates, release any associated locks 292 if (pkt->isInvalidate()) { 293 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n", 294 pkt->getAddr()); 295 TheISA::handleLockedSnoop(cpu->thread, pkt, cacheBlockMask); 296 } 297} 298 --- 345 unchanged lines hidden --- | 303 // if snoop invalidates, release any associated locks 304 if (pkt->isInvalidate()) { 305 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n", 306 pkt->getAddr()); 307 TheISA::handleLockedSnoop(cpu->thread, pkt, cacheBlockMask); 308 } 309} 310 --- 345 unchanged lines hidden --- |