dyn_inst.hh (8902:75b524b64c28) | dyn_inst.hh (9046:a1104cc13db2) |
---|---|
1/* 2 * Copyright (c) 2010 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 --- 93 unchanged lines hidden (view full) --- 102 /** Completes the access. Only valid for memory operations. */ 103 Fault completeAcc(PacketPtr pkt); 104 105 private: 106 /** Initializes variables. */ 107 void initVars(); 108 109 protected: | 1/* 2 * Copyright (c) 2010 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 --- 93 unchanged lines hidden (view full) --- 102 /** Completes the access. Only valid for memory operations. */ 103 Fault completeAcc(PacketPtr pkt); 104 105 private: 106 /** Initializes variables. */ 107 void initVars(); 108 109 protected: |
110 /** Values to be written to the destination misc. registers. */ 111 MiscReg _destMiscRegVal[TheISA::MaxMiscDestRegs]; 112 |
|
110 /** Indexes of the destination misc. registers. They are needed to defer 111 * the write accesses to the misc. registers until the commit stage, when 112 * the instruction is out of its speculative state. 113 */ | 113 /** Indexes of the destination misc. registers. They are needed to defer 114 * the write accesses to the misc. registers until the commit stage, when 115 * the instruction is out of its speculative state. 116 */ |
114 int _destMiscRegIdx[MaxInstDestRegs]; 115 /** Values to be written to the destination misc. registers. */ 116 MiscReg _destMiscRegVal[MaxInstDestRegs]; | 117 short _destMiscRegIdx[TheISA::MaxMiscDestRegs]; 118 |
117 /** Number of destination misc. registers. */ | 119 /** Number of destination misc. registers. */ |
118 int _numDestMiscRegs; | 120 uint8_t _numDestMiscRegs; |
119 | 121 |
120 public: | |
121 | 122 |
123 public: |
|
122#if TRACING_ON 123 /** Tick records used for the pipeline activity viewer. */ 124 Tick fetchTick; | 124#if TRACING_ON 125 /** Tick records used for the pipeline activity viewer. */ 126 Tick fetchTick; |
125 Tick decodeTick; 126 Tick renameTick; 127 Tick dispatchTick; 128 Tick issueTick; 129 Tick completeTick; | 127 uint32_t decodeTick; 128 uint32_t renameTick; 129 uint32_t dispatchTick; 130 uint32_t issueTick; 131 uint32_t completeTick; |
130#endif 131 132 /** Reads a misc. register, including any side-effects the read 133 * might have as defined by the architecture. 134 */ 135 MiscReg readMiscReg(int misc_reg) 136 { 137 return this->cpu->readMiscReg(misc_reg, this->threadNumber); 138 } 139 140 /** Sets a misc. register, including any side-effects the write 141 * might have as defined by the architecture. 142 */ 143 void setMiscReg(int misc_reg, const MiscReg &val) 144 { 145 /** Writes to misc. registers are recorded and deferred until the 146 * commit stage, when updateMiscRegs() is called. 147 */ | 132#endif 133 134 /** Reads a misc. register, including any side-effects the read 135 * might have as defined by the architecture. 136 */ 137 MiscReg readMiscReg(int misc_reg) 138 { 139 return this->cpu->readMiscReg(misc_reg, this->threadNumber); 140 } 141 142 /** Sets a misc. register, including any side-effects the write 143 * might have as defined by the architecture. 144 */ 145 void setMiscReg(int misc_reg, const MiscReg &val) 146 { 147 /** Writes to misc. registers are recorded and deferred until the 148 * commit stage, when updateMiscRegs() is called. 149 */ |
150 assert(_numDestMiscRegs < TheISA::MaxMiscDestRegs); |
|
148 _destMiscRegIdx[_numDestMiscRegs] = misc_reg; 149 _destMiscRegVal[_numDestMiscRegs] = val; 150 _numDestMiscRegs++; 151 } 152 153 /** Reads a misc. register, including any side-effects the read 154 * might have as defined by the architecture. 155 */ --- 140 unchanged lines hidden --- | 151 _destMiscRegIdx[_numDestMiscRegs] = misc_reg; 152 _destMiscRegVal[_numDestMiscRegs] = val; 153 _numDestMiscRegs++; 154 } 155 156 /** Reads a misc. register, including any side-effects the read 157 * might have as defined by the architecture. 158 */ --- 140 unchanged lines hidden --- |