Deleted Added
sdiff udiff text old ( 9184:a1a8f137b796 ) new ( 9444:ab47fe7f03f0 )
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;
9 * redistributions in binary form must reproduce the above copyright

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

84
85 /** Per-thread status. */
86 ThreadStatus decodeStatus[Impl::MaxThreads];
87
88 public:
89 /** DefaultDecode constructor. */
90 DefaultDecode(O3CPU *_cpu, DerivO3CPUParams *params);
91
92 /** Returns the name of decode. */
93 std::string name() const;
94
95 /** Registers statistics. */
96 void regStats();
97
98 /** Sets the main backwards communication time buffer pointer. */
99 void setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr);
100
101 /** Sets pointer to time buffer used to communicate to the next stage. */
102 void setDecodeQueue(TimeBuffer<DecodeStruct> *dq_ptr);
103
104 /** Sets pointer to time buffer coming from fetch. */
105 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr);
106
107 /** Sets pointer to list of active threads. */
108 void setActiveThreads(std::list<ThreadID> *at_ptr);
109
110 /** Drains the decode stage. */
111 bool drain();
112
113 /** Resumes execution after a drain. */
114 void resume() { }
115
116 /** Switches out the decode stage. */
117 void switchOut() { }
118
119 /** Takes over from another CPU's thread. */
120 void takeOverFrom();
121
122 /** Ticks decode, processing all input signals and decoding as many
123 * instructions as possible.
124 */
125 void tick();
126
127 /** Determines what to do based on decode's current status.
128 * @param status_change decode() sets this variable if there was a status

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

263 unsigned toRenameIndex;
264
265 /** number of Active Threads*/
266 ThreadID numThreads;
267
268 /** List of active thread ids */
269 std::list<ThreadID> *activeThreads;
270
271 /** Number of branches in flight. */
272 unsigned branchCount[Impl::MaxThreads];
273
274 /** Maximum size of the skid buffer. */
275 unsigned skidBufferMax;
276
277 /** SeqNum of Squashing Branch Delay Instruction (used for MIPS)*/
278 Addr bdelayDoneSeqNum[Impl::MaxThreads];
279
280 /** Instruction used for squashing branch (used for MIPS)*/
281 DynInstPtr squashInst[Impl::MaxThreads];

--- 33 unchanged lines hidden ---