1c1,13
< /*
---
> /*
> * Copyright (c) 2012 ARM Limited
> * All rights reserved
> *
> * The license below extends only to copyright in the software and shall
> * not be construed as granting a license to any other intellectual
> * property including but not limited to intellectual property relating
> * to a hardware implementation of the functionality of the software
> * licensed hereunder. You may use the software subject to the license
> * terms below provided that you ensure that this notice is replicated
> * unmodified and in its entirety in all distributions of the software,
> * modified or unmodified, in source code or in binary form.
> *
54a67,81
> // @todo: Make into a parameter
> skidBufferMax = (fetchToDecodeDelay + 1) * params->fetchWidth;
> }
>
> template<class Impl>
> void
> DefaultDecode<Impl>::startupStage()
> {
> resetStage();
> }
>
> template<class Impl>
> void
> DefaultDecode<Impl>::resetStage()
> {
65,67d91
<
< // @todo: Make into a parameter
< skidBufferMax = (fetchToDecodeDelay + 1) * params->fetchWidth;
167,175d190
< bool
< DefaultDecode<Impl>::drain()
< {
< // Decode is done draining at any time.
< cpu->signalDrained();
< return true;
< }
<
< template <class Impl>
177c192
< DefaultDecode<Impl>::takeOverFrom()
---
> DefaultDecode<Impl>::drainSanityCheck() const
179,181d193
< _status = Inactive;
<
< // Be sure to reset state and clear out any old instructions.
183,192c195,196
< decodeStatus[tid] = Idle;
<
< stalls[tid].rename = false;
< stalls[tid].iew = false;
< stalls[tid].commit = false;
< while (!insts[tid].empty())
< insts[tid].pop();
< while (!skidBuffer[tid].empty())
< skidBuffer[tid].pop();
< branchCount[tid] = 0;
---
> assert(insts[tid].empty());
> assert(skidBuffer[tid].empty());
194d197
< wroteToTimeBuffer = false;