atomic.cc (10015:0d1467be20eb) | atomic.cc (10024:fc10e1f9f124) |
---|---|
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 --- 287 unchanged lines hidden (view full) --- 296 //across a cache line boundary. 297 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); 298 299 if (secondAddr > addr) 300 size = secondAddr - addr; 301 302 dcache_latency = 0; 303 | 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 --- 287 unchanged lines hidden (view full) --- 296 //across a cache line boundary. 297 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); 298 299 if (secondAddr > addr) 300 size = secondAddr - addr; 301 302 dcache_latency = 0; 303 |
304 req->taskId(taskId()); |
|
304 while (1) { 305 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); 306 307 // translate to physical address 308 Fault fault = thread->dtb->translateAtomic(req, tc, BaseTLB::Read); 309 310 // Now do the access. 311 if (fault == NoFault && !req->getFlags().isSet(Request::NO_ACCESS)) { --- 70 unchanged lines hidden (view full) --- 382 //across a cache line boundary. 383 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); 384 385 if(secondAddr > addr) 386 size = secondAddr - addr; 387 388 dcache_latency = 0; 389 | 305 while (1) { 306 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); 307 308 // translate to physical address 309 Fault fault = thread->dtb->translateAtomic(req, tc, BaseTLB::Read); 310 311 // Now do the access. 312 if (fault == NoFault && !req->getFlags().isSet(Request::NO_ACCESS)) { --- 70 unchanged lines hidden (view full) --- 383 //across a cache line boundary. 384 Addr secondAddr = roundDown(addr + size - 1, cacheLineSize()); 385 386 if(secondAddr > addr) 387 size = secondAddr - addr; 388 389 dcache_latency = 0; 390 |
391 req->taskId(taskId()); |
|
390 while(1) { 391 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); 392 393 // translate to physical address 394 Fault fault = thread->dtb->translateAtomic(req, tc, BaseTLB::Write); 395 396 // Now do the access. 397 if (fault == NoFault) { --- 89 unchanged lines hidden (view full) --- 487 488 Fault fault = NoFault; 489 490 TheISA::PCState pcState = thread->pcState(); 491 492 bool needToFetch = !isRomMicroPC(pcState.microPC()) && 493 !curMacroStaticInst; 494 if (needToFetch) { | 392 while(1) { 393 req->setVirt(0, addr, size, flags, dataMasterId(), thread->pcState().instAddr()); 394 395 // translate to physical address 396 Fault fault = thread->dtb->translateAtomic(req, tc, BaseTLB::Write); 397 398 // Now do the access. 399 if (fault == NoFault) { --- 89 unchanged lines hidden (view full) --- 489 490 Fault fault = NoFault; 491 492 TheISA::PCState pcState = thread->pcState(); 493 494 bool needToFetch = !isRomMicroPC(pcState.microPC()) && 495 !curMacroStaticInst; 496 if (needToFetch) { |
497 ifetch_req.taskId(taskId()); |
|
495 setupFetchRequest(&ifetch_req); 496 fault = thread->itb->translateAtomic(&ifetch_req, tc, 497 BaseTLB::Execute); 498 } 499 500 if (fault == NoFault) { 501 Tick icache_latency = 0; 502 bool icache_access = false; --- 165 unchanged lines hidden --- | 498 setupFetchRequest(&ifetch_req); 499 fault = thread->itb->translateAtomic(&ifetch_req, tc, 500 BaseTLB::Execute); 501 } 502 503 if (fault == NoFault) { 504 Tick icache_latency = 0; 505 bool icache_access = false; --- 165 unchanged lines hidden --- |