base.cc (12749:223c83ed9979) | base.cc (12784:08091a9f1c7a) |
---|---|
1/* 2 * Copyright (c) 2011-2012,2016-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 --- 304 unchanged lines hidden (view full) --- 313} 314 315void 316BaseCPU::mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseTLB *dtb) 317{ 318 assert(tid < numThreads); 319 AddressMonitor &monitor = addressMonitor[tid]; 320 | 1/* 2 * Copyright (c) 2011-2012,2016-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 --- 304 unchanged lines hidden (view full) --- 313} 314 315void 316BaseCPU::mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseTLB *dtb) 317{ 318 assert(tid < numThreads); 319 AddressMonitor &monitor = addressMonitor[tid]; 320 |
321 RequestPtr req; | 321 RequestPtr req = std::make_shared<Request>(); 322 |
322 Addr addr = monitor.vAddr; 323 int block_size = cacheLineSize(); 324 uint64_t mask = ~((uint64_t)(block_size - 1)); 325 int size = block_size; 326 327 //The address of the next line if it crosses a cache line boundary. 328 Addr secondAddr = roundDown(addr + size - 1, block_size); 329 --- 529 unchanged lines hidden --- | 323 Addr addr = monitor.vAddr; 324 int block_size = cacheLineSize(); 325 uint64_t mask = ~((uint64_t)(block_size - 1)); 326 int size = block_size; 327 328 //The address of the next line if it crosses a cache line boundary. 329 Addr secondAddr = roundDown(addr + size - 1, block_size); 330 --- 529 unchanged lines hidden --- |