Deleted Added
sdiff udiff text old ( 12749:223c83ed9979 ) new ( 12769:f9c0d0a09dac )
full compact
1/*
2 * Copyright 2014 Google, Inc.
3 * Copyright (c) 2010-2013,2015,2017 ARM Limited
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 666 unchanged lines hidden (view full) ---

675TimingSimpleCPU::advanceInst(const Fault &fault)
676{
677 SimpleExecContext &t_info = *threadInfo[curThread];
678
679 if (_status == Faulting)
680 return;
681
682 if (fault != NoFault) {
683 DPRINTF(SimpleCPU, "Fault occured, scheduling fetch event\n");
684
685 advancePC(fault);
686
687 Tick stall = dynamic_pointer_cast<SyscallRetryFault>(fault) ?
688 clockEdge(syscallRetryLatency) : clockEdge();
689
690 reschedule(fetchEvent, stall, true);
691
692 _status = Faulting;
693 return;
694 }
695
696
697 if (!t_info.stayAtPC)
698 advancePC(fault);
699
700 if (tryCompleteDrain())
701 return;
702
703 if (_status == BaseSimpleCPU::Running) {
704 // kick off fetch of next instruction... callback from icache
705 // response will cause that instruction to be executed,
706 // keeping the CPU running.
707 fetch();
708 }
709}

--- 312 unchanged lines hidden ---