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