Deleted Added
sdiff udiff text old ( 11246:93d2a1526103 ) new ( 12104:edd63f9c6184 )
full compact
1/*
2 * Copyright (c) 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

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

80 typedef typename CPUPol::RenameStruct RenameStruct;
81 typedef typename CPUPol::TimeStruct TimeStruct;
82 typedef typename CPUPol::FreeList FreeList;
83 typedef typename CPUPol::RenameMap RenameMap;
84 // These are used only for initialization.
85 typedef typename CPUPol::IEW IEW;
86 typedef typename CPUPol::Commit Commit;
87
88 // Typedefs from the ISA.
89 typedef TheISA::RegIndex RegIndex;
90
91 // A deque is used to queue the instructions. Barrier insts must
92 // be added to the front of the queue, which is the only reason for
93 // using a deque instead of a queue. (Most other stages use a
94 // queue)
95 typedef std::deque<DynInstPtr> InstQueue;
96
97 public:
98 /** Overall rename status. Used to determine if the CPU can

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

296 */
297 void serializeAfter(InstQueue &inst_list, ThreadID tid);
298
299 /** Holds the information for each destination register rename. It holds
300 * the instruction's sequence number, the arch register, the old physical
301 * register for that arch. register, and the new physical register.
302 */
303 struct RenameHistory {
304 RenameHistory(InstSeqNum _instSeqNum, RegIndex _archReg,
305 PhysRegIndex _newPhysReg, PhysRegIndex _prevPhysReg)
306 : instSeqNum(_instSeqNum), archReg(_archReg),
307 newPhysReg(_newPhysReg), prevPhysReg(_prevPhysReg)
308 {
309 }
310
311 /** The sequence number of the instruction that renamed. */
312 InstSeqNum instSeqNum;
313 /** The architectural register index that was renamed. */
314 RegIndex archReg;
315 /** The new physical register that the arch. register is renamed to. */
316 PhysRegIndex newPhysReg;
317 /** The old physical register that the arch. register was renamed to. */
318 PhysRegIndex prevPhysReg;
319 };
320
321 /** A per-thread list of all destination register renames, used to either
322 * undo rename mappings or free old physical registers.

--- 209 unchanged lines hidden ---