commit.hh (5336:c7e21f4e5a2e) commit.hh (5529:9ae69b9cd7fd)
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;

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

32#ifndef __CPU_O3_COMMIT_HH__
33#define __CPU_O3_COMMIT_HH__
34
35#include "base/statistics.hh"
36#include "base/timebuf.hh"
37#include "cpu/exetrace.hh"
38#include "cpu/inst_seq.hh"
39
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;

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

32#ifndef __CPU_O3_COMMIT_HH__
33#define __CPU_O3_COMMIT_HH__
34
35#include "base/statistics.hh"
36#include "base/timebuf.hh"
37#include "cpu/exetrace.hh"
38#include "cpu/inst_seq.hh"
39
40class DerivO3CPUParams;
41
40template <class>
41class O3ThreadState;
42
43/**
44 * DefaultCommit handles single threaded and SMT commit. Its width is
45 * specified by the parameters; each cycle it tries to commit that
46 * many instructions. The SMT policy decides which thread it tries to
47 * commit instructions from. Non- speculative instructions must reach

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

64 */
65template<class Impl>
66class DefaultCommit
67{
68 public:
69 // Typedefs from the Impl.
70 typedef typename Impl::O3CPU O3CPU;
71 typedef typename Impl::DynInstPtr DynInstPtr;
42template <class>
43class O3ThreadState;
44
45/**
46 * DefaultCommit handles single threaded and SMT commit. Its width is
47 * specified by the parameters; each cycle it tries to commit that
48 * many instructions. The SMT policy decides which thread it tries to
49 * commit instructions from. Non- speculative instructions must reach

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

66 */
67template<class Impl>
68class DefaultCommit
69{
70 public:
71 // Typedefs from the Impl.
72 typedef typename Impl::O3CPU O3CPU;
73 typedef typename Impl::DynInstPtr DynInstPtr;
72 typedef typename Impl::Params Params;
73 typedef typename Impl::CPUPol CPUPol;
74
75 typedef typename CPUPol::RenameMap RenameMap;
76 typedef typename CPUPol::ROB ROB;
77
78 typedef typename CPUPol::TimeStruct TimeStruct;
79 typedef typename CPUPol::FetchStruct FetchStruct;
80 typedef typename CPUPol::IEWStruct IEWStruct;

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

131 CommitStatus _nextStatus;
132 /** Per-thread status. */
133 ThreadStatus commitStatus[Impl::MaxThreads];
134 /** Commit policy used in SMT mode. */
135 CommitPolicy commitPolicy;
136
137 public:
138 /** Construct a DefaultCommit with the given parameters. */
74 typedef typename Impl::CPUPol CPUPol;
75
76 typedef typename CPUPol::RenameMap RenameMap;
77 typedef typename CPUPol::ROB ROB;
78
79 typedef typename CPUPol::TimeStruct TimeStruct;
80 typedef typename CPUPol::FetchStruct FetchStruct;
81 typedef typename CPUPol::IEWStruct IEWStruct;

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

132 CommitStatus _nextStatus;
133 /** Per-thread status. */
134 ThreadStatus commitStatus[Impl::MaxThreads];
135 /** Commit policy used in SMT mode. */
136 CommitPolicy commitPolicy;
137
138 public:
139 /** Construct a DefaultCommit with the given parameters. */
139 DefaultCommit(O3CPU *_cpu, Params *params);
140 DefaultCommit(O3CPU *_cpu, DerivO3CPUParams *params);
140
141 /** Returns the name of the DefaultCommit. */
142 std::string name() const;
143
144 /** Registers statistics. */
145 void regStats();
146
147 /** Sets the list of threads. */

--- 343 unchanged lines hidden ---
141
142 /** Returns the name of the DefaultCommit. */
143 std::string name() const;
144
145 /** Registers statistics. */
146 void regStats();
147
148 /** Sets the list of threads. */

--- 343 unchanged lines hidden ---