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 --- |