timing.cc (3222:19bd4dd3be83) | timing.cc (3227:fe19356d6f88) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 177 unchanged lines hidden (view full) --- 186 for (int i = 0; i < threadContexts.size(); ++i) { 187 ThreadContext *tc = threadContexts[i]; 188 if (tc->status() == ThreadContext::Active && _status != Running) { 189 _status = Running; 190 break; 191 } 192 } 193 | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 177 unchanged lines hidden (view full) --- 186 for (int i = 0; i < threadContexts.size(); ++i) { 187 ThreadContext *tc = threadContexts[i]; 188 if (tc->status() == ThreadContext::Active && _status != Running) { 189 _status = Running; 190 break; 191 } 192 } 193 |
194 if (_status != Running) { 195 _status = Idle; 196 } 197 |
|
194 Port *peer; 195 if (icachePort.getPeer() == NULL) { | 198 Port *peer; 199 if (icachePort.getPeer() == NULL) { |
196 peer = oldCPU->getPort("icachePort")->getPeer(); | 200 peer = oldCPU->getPort("icache_port")->getPeer(); |
197 icachePort.setPeer(peer); 198 } else { 199 peer = icachePort.getPeer(); 200 } 201 peer->setPeer(&icachePort); 202 203 if (dcachePort.getPeer() == NULL) { | 201 icachePort.setPeer(peer); 202 } else { 203 peer = icachePort.getPeer(); 204 } 205 peer->setPeer(&icachePort); 206 207 if (dcachePort.getPeer() == NULL) { |
204 peer = oldCPU->getPort("dcachePort")->getPeer(); | 208 peer = oldCPU->getPort("dcache_port")->getPeer(); |
205 dcachePort.setPeer(peer); 206 } else { 207 peer = dcachePort.getPeer(); 208 } 209 peer->setPeer(&dcachePort); 210} 211 212 --- 327 unchanged lines hidden (view full) --- 540 // instruction 541 assert(pkt->result == Packet::Success); 542 assert(_status == DcacheWaitResponse); 543 _status = Running; 544 545 numCycles += curTick - previousTick; 546 previousTick = curTick; 547 | 209 dcachePort.setPeer(peer); 210 } else { 211 peer = dcachePort.getPeer(); 212 } 213 peer->setPeer(&dcachePort); 214} 215 216 --- 327 unchanged lines hidden (view full) --- 544 // instruction 545 assert(pkt->result == Packet::Success); 546 assert(_status == DcacheWaitResponse); 547 _status = Running; 548 549 numCycles += curTick - previousTick; 550 previousTick = curTick; 551 |
548 if (getState() == SimObject::Draining) { 549 completeDrain(); 550 551 delete pkt->req; 552 delete pkt; 553 554 return; 555 } 556 | |
557 Fault fault = curStaticInst->completeAcc(pkt, this, traceData); 558 559 delete pkt->req; 560 delete pkt; 561 562 postExecute(); | 552 Fault fault = curStaticInst->completeAcc(pkt, this, traceData); 553 554 delete pkt->req; 555 delete pkt; 556 557 postExecute(); |
558 559 if (getState() == SimObject::Draining) { 560 advancePC(fault); 561 completeDrain(); 562 563 return; 564 } 565 |
|
563 advanceInst(fault); 564} 565 566 567void 568TimingSimpleCPU::completeDrain() 569{ 570 DPRINTF(Config, "Done draining\n"); --- 138 unchanged lines hidden --- | 566 advanceInst(fault); 567} 568 569 570void 571TimingSimpleCPU::completeDrain() 572{ 573 DPRINTF(Config, "Done draining\n"); --- 138 unchanged lines hidden --- |