timing.cc (10020:2f33cb012383) | timing.cc (10024:fc10e1f9f124) |
---|---|
1/* 2 * Copyright (c) 2010-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 --- 401 unchanged lines hidden (view full) --- 410 411 if (traceData) { 412 traceData->setAddr(addr); 413 } 414 415 RequestPtr req = new Request(asid, addr, size, 416 flags, dataMasterId(), pc, _cpuId, tid); 417 | 1/* 2 * Copyright (c) 2010-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 --- 401 unchanged lines hidden (view full) --- 410 411 if (traceData) { 412 traceData->setAddr(addr); 413 } 414 415 RequestPtr req = new Request(asid, addr, size, 416 flags, dataMasterId(), pc, _cpuId, tid); 417 |
418 req->taskId(taskId()); 419 |
|
418 Addr split_addr = roundDown(addr + size - 1, block_size); 419 assert(split_addr <= addr || split_addr - addr < block_size); 420 421 _status = DTBWaitResponse; 422 if (split_addr > addr) { 423 RequestPtr req1, req2; 424 assert(!req->isLLSC() && !req->isSwap()); 425 req->splitOnVaddr(split_addr, req1, req2); --- 53 unchanged lines hidden (view full) --- 479 480 if (traceData) { 481 traceData->setAddr(addr); 482 } 483 484 RequestPtr req = new Request(asid, addr, size, 485 flags, dataMasterId(), pc, _cpuId, tid); 486 | 420 Addr split_addr = roundDown(addr + size - 1, block_size); 421 assert(split_addr <= addr || split_addr - addr < block_size); 422 423 _status = DTBWaitResponse; 424 if (split_addr > addr) { 425 RequestPtr req1, req2; 426 assert(!req->isLLSC() && !req->isSwap()); 427 req->splitOnVaddr(split_addr, req1, req2); --- 53 unchanged lines hidden (view full) --- 481 482 if (traceData) { 483 traceData->setAddr(addr); 484 } 485 486 RequestPtr req = new Request(asid, addr, size, 487 flags, dataMasterId(), pc, _cpuId, tid); 488 |
489 req->taskId(taskId()); 490 |
|
487 Addr split_addr = roundDown(addr + size - 1, block_size); 488 assert(split_addr <= addr || split_addr - addr < block_size); 489 490 _status = DTBWaitResponse; 491 if (split_addr > addr) { 492 RequestPtr req1, req2; 493 assert(!req->isLLSC() && !req->isSwap()); 494 req->splitOnVaddr(split_addr, req1, req2); --- 61 unchanged lines hidden (view full) --- 556 return; 557 558 TheISA::PCState pcState = thread->pcState(); 559 bool needToFetch = !isRomMicroPC(pcState.microPC()) && !curMacroStaticInst; 560 561 if (needToFetch) { 562 _status = BaseSimpleCPU::Running; 563 Request *ifetch_req = new Request(); | 491 Addr split_addr = roundDown(addr + size - 1, block_size); 492 assert(split_addr <= addr || split_addr - addr < block_size); 493 494 _status = DTBWaitResponse; 495 if (split_addr > addr) { 496 RequestPtr req1, req2; 497 assert(!req->isLLSC() && !req->isSwap()); 498 req->splitOnVaddr(split_addr, req1, req2); --- 61 unchanged lines hidden (view full) --- 560 return; 561 562 TheISA::PCState pcState = thread->pcState(); 563 bool needToFetch = !isRomMicroPC(pcState.microPC()) && !curMacroStaticInst; 564 565 if (needToFetch) { 566 _status = BaseSimpleCPU::Running; 567 Request *ifetch_req = new Request(); |
568 ifetch_req->taskId(taskId()); |
|
564 ifetch_req->setThreadContext(_cpuId, /* thread ID */ 0); 565 setupFetchRequest(ifetch_req); 566 DPRINTF(SimpleCPU, "Translating address %#x\n", ifetch_req->getVaddr()); 567 thread->itb->translateTiming(ifetch_req, tc, &fetchTranslation, 568 BaseTLB::Execute); 569 } else { 570 _status = IcacheWaitResponse; 571 completeIfetch(NULL); --- 352 unchanged lines hidden --- | 569 ifetch_req->setThreadContext(_cpuId, /* thread ID */ 0); 570 setupFetchRequest(ifetch_req); 571 DPRINTF(SimpleCPU, "Translating address %#x\n", ifetch_req->getVaddr()); 572 thread->itb->translateTiming(ifetch_req, tc, &fetchTranslation, 573 BaseTLB::Execute); 574 } else { 575 _status = IcacheWaitResponse; 576 completeIfetch(NULL); --- 352 unchanged lines hidden --- |