Lines Matching defs:phys_reg

185     readIntReg(PhysRegIdPtr phys_reg) const
187 assert(phys_reg->isIntPhysReg());
190 "%#x\n", phys_reg->index(), intRegFile[phys_reg->index()]);
191 return intRegFile[phys_reg->index()];
195 readFloatReg(PhysRegIdPtr phys_reg) const
197 assert(phys_reg->isFloatPhysReg());
199 RegVal floatRegBits = floatRegFile[phys_reg->index()];
202 "has data %#x\n", phys_reg->index(), floatRegBits);
209 readVecReg(PhysRegIdPtr phys_reg) const
211 assert(phys_reg->isVectorPhysReg());
214 "data %s\n", int(phys_reg->index()),
215 vectorRegFile[phys_reg->index()].print());
217 return vectorRegFile[phys_reg->index()];
222 getWritableVecReg(PhysRegIdPtr phys_reg)
225 return const_cast<VecRegContainer&>(readVecReg(phys_reg));
231 readVecLane(PhysRegIdPtr phys_reg) const
233 return readVecReg(phys_reg).laneView<VecElem, LaneIdx>();
239 readVecLane(PhysRegIdPtr phys_reg) const
241 return readVecReg(phys_reg).laneView<VecElem>(phys_reg->elemIndex());
247 setVecLane(PhysRegIdPtr phys_reg, const LD& val)
249 assert(phys_reg->isVectorPhysReg());
252 int(phys_reg->index()), phys_reg->elemIndex(), val);
254 vectorRegFile[phys_reg->index()].laneView<typename LD::UnderlyingType>(
255 phys_reg->elemIndex()) = val;
260 readVecElem(PhysRegIdPtr phys_reg) const
262 assert(phys_reg->isVectorPhysElem());
263 auto ret = vectorRegFile[phys_reg->index()].as<VecElem>();
264 const VecElem& val = ret[phys_reg->elemIndex()];
266 " has data %#x\n", phys_reg->elemIndex(),
267 int(phys_reg->index()), val);
273 const VecPredRegContainer& readVecPredReg(PhysRegIdPtr phys_reg) const
275 assert(phys_reg->isVecPredPhysReg());
278 "data %s\n", int(phys_reg->index()),
279 vecPredRegFile[phys_reg->index()].print());
281 return vecPredRegFile[phys_reg->index()];
284 VecPredRegContainer& getWritableVecPredReg(PhysRegIdPtr phys_reg)
287 return const_cast<VecPredRegContainer&>(readVecPredReg(phys_reg));
292 readCCReg(PhysRegIdPtr phys_reg)
294 assert(phys_reg->isCCPhysReg());
297 "data %#x\n", phys_reg->index(),
298 ccRegFile[phys_reg->index()]);
300 return ccRegFile[phys_reg->index()];
305 setIntReg(PhysRegIdPtr phys_reg, RegVal val)
307 assert(phys_reg->isIntPhysReg());
310 phys_reg->index(), val);
312 if (!phys_reg->isZeroReg())
313 intRegFile[phys_reg->index()] = val;
317 setFloatReg(PhysRegIdPtr phys_reg, RegVal val)
319 assert(phys_reg->isFloatPhysReg());
322 phys_reg->index(), (uint64_t)val);
324 if (!phys_reg->isZeroReg())
325 floatRegFile[phys_reg->index()] = val;
330 setVecReg(PhysRegIdPtr phys_reg, const VecRegContainer& val)
332 assert(phys_reg->isVectorPhysReg());
335 int(phys_reg->index()), val.print());
337 vectorRegFile[phys_reg->index()] = val;
342 setVecElem(PhysRegIdPtr phys_reg, const VecElem val)
344 assert(phys_reg->isVectorPhysElem());
347 " %#x\n", phys_reg->elemIndex(), int(phys_reg->index()), val);
349 vectorRegFile[phys_reg->index()].as<VecElem>()[phys_reg->elemIndex()] =
354 void setVecPredReg(PhysRegIdPtr phys_reg, const VecPredRegContainer& val)
356 assert(phys_reg->isVecPredPhysReg());
359 int(phys_reg->index()), val.print());
361 vecPredRegFile[phys_reg->index()] = val;
366 setCCReg(PhysRegIdPtr phys_reg, RegVal val)
368 assert(phys_reg->isCCPhysReg());
371 phys_reg->index(), (uint64_t)val);
373 ccRegFile[phys_reg->index()] = val;