snoop_filter.cc (12352:3bddc8785a99) snoop_filter.cc (12353:5650eb170bfb)
1/*
2 * Copyright (c) 2013-2017 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

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

357
358 DPRINTF(SnoopFilter, "%s: old SF value %x.%x\n",
359 __func__, sf_item.requested, sf_item.holder);
360
361 // Make sure we have seen the actual request, too
362 panic_if(!(sf_item.requested & slave_mask), "SF value %x.%x missing "\
363 "request bit\n", sf_item.requested, sf_item.holder);
364
1/*
2 * Copyright (c) 2013-2017 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

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

357
358 DPRINTF(SnoopFilter, "%s: old SF value %x.%x\n",
359 __func__, sf_item.requested, sf_item.holder);
360
361 // Make sure we have seen the actual request, too
362 panic_if(!(sf_item.requested & slave_mask), "SF value %x.%x missing "\
363 "request bit\n", sf_item.requested, sf_item.holder);
364
365 // Update the residency of the cache line.
366 sf_item.holder |= slave_mask;
367 sf_item.requested &= ~slave_mask;
365 sf_item.requested &= ~slave_mask;
368 assert(sf_item.holder | sf_item.requested);
366 // Update the residency of the cache line.
367
368 if (cpkt->req->isCacheMaintenance()) {
369 // A cache clean response does not carry any data so it
370 // shouldn't change the holders, unless it is invalidating.
371 if (cpkt->isInvalidate()) {
372 sf_item.holder &= ~slave_mask;
373 }
374 eraseIfNullEntry(sf_it);
375 } else {
376 // Any other response implies that a cache above will have the
377 // block.
378 sf_item.holder |= slave_mask;
379 assert(sf_item.holder | sf_item.requested);
380 }
369 DPRINTF(SnoopFilter, "%s: new SF value %x.%x\n",
370 __func__, sf_item.requested, sf_item.holder);
371}
372
373void
374SnoopFilter::regStats()
375{
376 SimObject::regStats();

--- 35 unchanged lines hidden ---
381 DPRINTF(SnoopFilter, "%s: new SF value %x.%x\n",
382 __func__, sf_item.requested, sf_item.holder);
383}
384
385void
386SnoopFilter::regStats()
387{
388 SimObject::regStats();

--- 35 unchanged lines hidden ---