atomic.cc (9647:5b6b315472e7) | atomic.cc (9814:7ad2b0186a32) |
---|---|
1/* 2 * Copyright (c) 2012 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 --- 273 unchanged lines hidden (view full) --- 282{ 283 // use the CPU's statically allocated read request and packet objects 284 Request *req = &data_read_req; 285 286 if (traceData) { 287 traceData->setAddr(addr); 288 } 289 | 1/* 2 * Copyright (c) 2012 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 --- 273 unchanged lines hidden (view full) --- 282{ 283 // use the CPU's statically allocated read request and packet objects 284 Request *req = &data_read_req; 285 286 if (traceData) { 287 traceData->setAddr(addr); 288 } 289 |
290 //The block size of our peer. 291 unsigned blockSize = dcachePort.peerBlockSize(); | |
292 //The size of the data we're trying to read. 293 int fullSize = size; 294 295 //The address of the second part of this access if it needs to be split 296 //across a cache line boundary. | 290 //The size of the data we're trying to read. 291 int fullSize = size; 292 293 //The address of the second part of this access if it needs to be split 294 //across a cache line boundary. |
297 Addr secondAddr = roundDown(addr + size - 1, blockSize); | 295 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); |
298 299 if (secondAddr > addr) 300 size = secondAddr - addr; 301 302 dcache_latency = 0; 303 304 while (1) { 305 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); --- 64 unchanged lines hidden (view full) --- 370{ 371 // use the CPU's statically allocated write request and packet objects 372 Request *req = &data_write_req; 373 374 if (traceData) { 375 traceData->setAddr(addr); 376 } 377 | 296 297 if (secondAddr > addr) 298 size = secondAddr - addr; 299 300 dcache_latency = 0; 301 302 while (1) { 303 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); --- 64 unchanged lines hidden (view full) --- 368{ 369 // use the CPU's statically allocated write request and packet objects 370 Request *req = &data_write_req; 371 372 if (traceData) { 373 traceData->setAddr(addr); 374 } 375 |
378 //The block size of our peer. 379 unsigned blockSize = dcachePort.peerBlockSize(); | |
380 //The size of the data we're trying to read. 381 int fullSize = size; 382 383 //The address of the second part of this access if it needs to be split 384 //across a cache line boundary. | 376 //The size of the data we're trying to read. 377 int fullSize = size; 378 379 //The address of the second part of this access if it needs to be split 380 //across a cache line boundary. |
385 Addr secondAddr = roundDown(addr + size - 1, blockSize); | 381 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); |
386 387 if(secondAddr > addr) 388 size = secondAddr - addr; 389 390 dcache_latency = 0; 391 392 while(1) { 393 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); --- 277 unchanged lines hidden --- | 382 383 if(secondAddr > addr) 384 size = secondAddr - addr; 385 386 dcache_latency = 0; 387 388 while(1) { 389 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); --- 277 unchanged lines hidden --- |