atomic.cc (11321:02e930db812d) atomic.cc (11356:a80884911971)
1/*
2 * Copyright 2014 Google, Inc.
3 * Copyright (c) 2012-2013,2015 ARM Limited
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 278 unchanged lines hidden (view full) ---

287
288 for (ThreadID tid = 0; tid < cpu->numThreads; tid++) {
289 if (cpu->getCpuAddrMonitor(tid)->doMonitor(pkt)) {
290 cpu->wakeup(tid);
291 }
292 }
293
294 // if snoop invalidates, release any associated locks
1/*
2 * Copyright 2014 Google, Inc.
3 * Copyright (c) 2012-2013,2015 ARM Limited
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 278 unchanged lines hidden (view full) ---

287
288 for (ThreadID tid = 0; tid < cpu->numThreads; tid++) {
289 if (cpu->getCpuAddrMonitor(tid)->doMonitor(pkt)) {
290 cpu->wakeup(tid);
291 }
292 }
293
294 // if snoop invalidates, release any associated locks
295 if (pkt->isInvalidate()) {
295 // When run without caches, Invalidation packets will not be received
296 // hence we must check if the incoming packets are writes and wakeup
297 // the processor accordingly
298 if (pkt->isInvalidate() || pkt->isWrite()) {
296 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n",
297 pkt->getAddr());
298 for (auto &t_info : cpu->threadInfo) {
299 TheISA::handleLockedSnoop(t_info->thread, pkt, cacheBlockMask);
300 }
301 }
302
303 return 0;

--- 395 unchanged lines hidden ---
299 DPRINTF(SimpleCPU, "received invalidation for addr:%#x\n",
300 pkt->getAddr());
301 for (auto &t_info : cpu->threadInfo) {
302 TheISA::handleLockedSnoop(t_info->thread, pkt, cacheBlockMask);
303 }
304 }
305
306 return 0;

--- 395 unchanged lines hidden ---