1/* 2 * Copyright (c) 2004-2006 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; --- 100 unchanged lines hidden (view full) --- 109 .desc("Number of squashed instructions handled by decode") 110 .prereq(decodeSquashedInsts); 111} 112 113template<class Impl> 114void 115DefaultDecode<Impl>::setCPU(O3CPU *cpu_ptr) 116{ |
117 cpu = cpu_ptr; |
118 DPRINTF(Decode, "Setting CPU pointer.\n"); |
119} 120 121template<class Impl> 122void 123DefaultDecode<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr) 124{ |
125 timeBuffer = tb_ptr; 126 127 // Setup wire to write information back to fetch. 128 toFetch = timeBuffer->getWire(0); 129 130 // Create wires to get information from proper places in time buffer. 131 fromRename = timeBuffer->getWire(-renameToDecodeDelay); 132 fromIEW = timeBuffer->getWire(-iewToDecodeDelay); 133 fromCommit = timeBuffer->getWire(-commitToDecodeDelay); 134} 135 136template<class Impl> 137void 138DefaultDecode<Impl>::setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr) 139{ |
140 decodeQueue = dq_ptr; 141 142 // Setup wire to write information to proper place in decode queue. 143 toRename = decodeQueue->getWire(0); 144} 145 146template<class Impl> 147void 148DefaultDecode<Impl>::setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr) 149{ |
150 fetchQueue = fq_ptr; 151 152 // Setup wire to read information from fetch queue. 153 fromFetch = fetchQueue->getWire(-fetchToDecodeDelay); 154} 155 156template<class Impl> 157void 158DefaultDecode<Impl>::setActiveThreads(std::list<unsigned> *at_ptr) 159{ |
160 activeThreads = at_ptr; 161} 162 163template <class Impl> 164bool 165DefaultDecode<Impl>::drain() 166{ 167 // Decode is done draining at any time. --- 658 unchanged lines hidden --- |