scoreboard.hh (10935:acd48ddd725f) scoreboard.hh (12104:edd63f9c6184)
1/*
2 * Copyright (c) 2013-2014 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

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

62 /** The number of registers in the Scoreboard. These
63 * are just the integer, CC and float registers packed
64 * together with integer regs in the range [0,NumIntRegs-1],
65 * CC regs in the range [NumIntRegs, NumIntRegs+NumCCRegs-1]
66 * and float regs in the range
67 * [NumIntRegs+NumCCRegs, NumFloatRegs+NumIntRegs+NumCCRegs-1] */
68 const unsigned numRegs;
69
1/*
2 * Copyright (c) 2013-2014 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

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

62 /** The number of registers in the Scoreboard. These
63 * are just the integer, CC and float registers packed
64 * together with integer regs in the range [0,NumIntRegs-1],
65 * CC regs in the range [NumIntRegs, NumIntRegs+NumCCRegs-1]
66 * and float regs in the range
67 * [NumIntRegs+NumCCRegs, NumFloatRegs+NumIntRegs+NumCCRegs-1] */
68 const unsigned numRegs;
69
70 /** Type to use for thread context registers */
71 typedef TheISA::RegIndex RegIndex;
72
73 /** Type to use when indexing numResults */
74 typedef unsigned short int Index;
75
76 /** Count of the number of in-flight instructions that
77 * have results for each register */
78 std::vector<Index> numResults;
79
80 /** Count of the number of results which can't be predicted */

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

104 returnCycle(numRegs, Cycles(0)),
105 writingInst(numRegs, 0)
106 { }
107
108 public:
109 /** Sets scoreboard_index to the index into numResults of the
110 * given register index. Returns true if the given register
111 * is in the scoreboard and false if it isn't */
70 /** Type to use when indexing numResults */
71 typedef unsigned short int Index;
72
73 /** Count of the number of in-flight instructions that
74 * have results for each register */
75 std::vector<Index> numResults;
76
77 /** Count of the number of results which can't be predicted */

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

101 returnCycle(numRegs, Cycles(0)),
102 writingInst(numRegs, 0)
103 { }
104
105 public:
106 /** Sets scoreboard_index to the index into numResults of the
107 * given register index. Returns true if the given register
108 * is in the scoreboard and false if it isn't */
112 bool findIndex(RegIndex reg, Index &scoreboard_index);
109 bool findIndex(RegId reg, Index &scoreboard_index);
113
114 /** Mark up an instruction's effects by incrementing
115 * numResults counts. If mark_unpredictable is true, the inst's
116 * destination registers are marked as being unpredictable without
117 * an estimated retire time */
118 void markupInstDests(MinorDynInstPtr inst, Cycles retire_time,
119 ThreadContext *thread_context, bool mark_unpredictable);
120

--- 25 unchanged lines hidden ---
110
111 /** Mark up an instruction's effects by incrementing
112 * numResults counts. If mark_unpredictable is true, the inst's
113 * destination registers are marked as being unpredictable without
114 * an estimated retire time */
115 void markupInstDests(MinorDynInstPtr inst, Cycles retire_time,
116 ThreadContext *thread_context, bool mark_unpredictable);
117

--- 25 unchanged lines hidden ---