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 ---