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 --- 36 unchanged lines hidden (view full) --- 45#define __CPU_O3_COMMIT_HH__ 46 47#include <queue> 48 49#include "base/statistics.hh" 50#include "cpu/exetrace.hh" 51#include "cpu/inst_seq.hh" 52#include "cpu/timebuf.hh" |
53#include "sim/probe/probe.hh" |
54 55struct DerivO3CPUParams; 56 57template <class> 58struct O3ThreadState; 59 60/** 61 * DefaultCommit handles single threaded and SMT commit. Its width is --- 84 unchanged lines hidden (view full) --- 146 CommitStatus _status; 147 /** Next commit status, to be set at the end of the cycle. */ 148 CommitStatus _nextStatus; 149 /** Per-thread status. */ 150 ThreadStatus commitStatus[Impl::MaxThreads]; 151 /** Commit policy used in SMT mode. */ 152 CommitPolicy commitPolicy; 153 |
154 /** Probe Points. */ 155 ProbePointArg<DynInstPtr> *ppCommit; 156 ProbePointArg<DynInstPtr> *ppCommitStall; 157 |
158 public: 159 /** Construct a DefaultCommit with the given parameters. */ 160 DefaultCommit(O3CPU *_cpu, DerivO3CPUParams *params); 161 162 /** Returns the name of the DefaultCommit. */ 163 std::string name() const; 164 165 /** Registers statistics. */ 166 void regStats(); 167 |
168 /** Registers probes. */ 169 void regProbePoints(); 170 |
171 /** Sets the list of threads. */ 172 void setThreads(std::vector<Thread *> &threads); 173 174 /** Sets the main time buffer pointer, used for backwards communication. */ 175 void setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr); 176 177 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr); 178 --- 364 unchanged lines hidden --- |