Deleted Added
sdiff udiff text old ( 2670:9107b8bd08cd ) new ( 2674:6d4afef73a20 )
full compact
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;

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

38#include "cpu/inst_seq.hh"
39#include "sim/host.hh"
40
41// Typedef for physical register index type. Although the Impl would be the
42// most likely location for this, there are a few classes that need this
43// typedef yet are not templated on the Impl. For now it will be defined here.
44typedef short int PhysRegIndex;
45
46template<class Impl>
47struct DefaultFetchDefaultDecode {
48 typedef typename Impl::DynInstPtr DynInstPtr;
49
50 int size;
51
52 DynInstPtr insts[Impl::MaxWidth];
53 Fault fetchFault;
54 InstSeqNum fetchFaultSN;
55 bool clearFetchFault;
56};
57
58template<class Impl>
59struct DefaultDecodeDefaultRename {
60 typedef typename Impl::DynInstPtr DynInstPtr;
61
62 int size;
63
64 DynInstPtr insts[Impl::MaxWidth];
65};
66
67template<class Impl>
68struct DefaultRenameDefaultIEW {
69 typedef typename Impl::DynInstPtr DynInstPtr;
70
71 int size;
72
73 DynInstPtr insts[Impl::MaxWidth];
74};
75
76template<class Impl>
77struct DefaultIEWDefaultCommit {
78 typedef typename Impl::DynInstPtr DynInstPtr;
79
80 int size;
81
82 DynInstPtr insts[Impl::MaxWidth];
83

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

95struct IssueStruct {
96 typedef typename Impl::DynInstPtr DynInstPtr;
97
98 int size;
99
100 DynInstPtr insts[Impl::MaxWidth];
101};
102
103template<class Impl>
104struct TimeBufStruct {
105 struct decodeComm {
106 bool squash;
107 bool predIncorrect;
108 uint64_t branchAddr;
109
110 InstSeqNum doneSeqNum;

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

116 uint64_t mispredPC;
117 uint64_t nextPC;
118
119 unsigned branchCount;
120 };
121
122 decodeComm decodeInfo[Impl::MaxThreads];
123
124 // Rename can't actually tell anything to squash or send a new PC back
125 // because it doesn't do anything along those lines. But maybe leave
126 // these fields in here to keep the stages mostly orthagonal.
127 struct renameComm {
128 bool squash;
129
130 uint64_t nextPC;
131 };
132
133 renameComm renameInfo[Impl::MaxThreads];
134
135 struct iewComm {
136 // Also eventually include skid buffer space.
137 bool usedIQ;
138 unsigned freeIQEntries;

--- 61 unchanged lines hidden ---