Lines Matching defs:RegisterCell

34   struct RegisterCell;
39 typedef std::map<unsigned, RegisterCell> CellMapType;
47 const RegisterCell &lookup(unsigned Reg) const;
48 RegisterCell get(RegisterRef RR) const;
49 void put(RegisterRef RR, const RegisterCell &RC);
249 struct BitTracker::RegisterCell {
250 RegisterCell(uint16_t Width = DefaultBitN) : Bits(Width) {}
264 bool meet(const RegisterCell &RC, unsigned SelfR);
265 RegisterCell &insert(const RegisterCell &RC, const BitMask &M);
266 RegisterCell extract(const BitMask &M) const; // Returns a new cell.
267 RegisterCell &rol(uint16_t Sh); // Rotate left.
268 RegisterCell &fill(uint16_t B, uint16_t E, const BitValue &V);
269 RegisterCell &cat(const RegisterCell &RC); // Concatenate.
273 bool operator== (const RegisterCell &RC) const;
274 bool operator!= (const RegisterCell &RC) const {
281 static RegisterCell self(unsigned Reg, uint16_t Width);
283 static RegisterCell top(uint16_t Width);
285 static RegisterCell ref(const RegisterCell &C);
294 friend raw_ostream &operator<<(raw_ostream &OS, const RegisterCell &RC);
303 inline const BitTracker::RegisterCell&
311 inline BitTracker::RegisterCell
312 BitTracker::RegisterCell::self(unsigned Reg, uint16_t Width) {
313 RegisterCell RC(Width);
320 inline BitTracker::RegisterCell
321 BitTracker::RegisterCell::top(uint16_t Width) {
322 RegisterCell RC(Width);
329 inline BitTracker::RegisterCell
330 BitTracker::RegisterCell::ref(const RegisterCell &C) {
332 RegisterCell RC(W);
349 RegisterCell getCell(const RegisterRef &RR, const CellMapType &M) const;
350 void putCell(const RegisterRef &RR, RegisterCell RC, CellMapType &M) const;
354 RegisterCell getRef(const RegisterRef &RR, const CellMapType &M) const {
355 RegisterCell RC = getCell(RR, M);
356 return RegisterCell::ref(RC);
361 bool isInt(const RegisterCell &A) const;
363 uint64_t toInt(const RegisterCell &A) const;
366 RegisterCell eIMM(int64_t V, uint16_t W) const;
367 RegisterCell eIMM(const ConstantInt *CI) const;
370 RegisterCell eADD(const RegisterCell &A1, const RegisterCell &A2) const;
371 RegisterCell eSUB(const RegisterCell &A1, const RegisterCell &A2) const;
372 RegisterCell eMLS(const RegisterCell &A1, const RegisterCell &A2) const;
373 RegisterCell eMLU(const RegisterCell &A1, const RegisterCell &A2) const;
376 RegisterCell eASL(const RegisterCell &A1, uint16_t Sh) const;
377 RegisterCell eLSR(const RegisterCell &A1, uint16_t Sh) const;
378 RegisterCell eASR(const RegisterCell &A1, uint16_t Sh) const;
381 RegisterCell eAND(const RegisterCell &A1, const RegisterCell &A2) const;
382 RegisterCell eORL(const RegisterCell &A1, const RegisterCell &A2) const;
383 RegisterCell eXOR(const RegisterCell &A1, const RegisterCell &A2) const;
384 RegisterCell eNOT(const RegisterCell &A1) const;
387 RegisterCell eSET(const RegisterCell &A1, uint16_t BitN) const;
388 RegisterCell eCLR(const RegisterCell &A1, uint16_t BitN) const;
391 RegisterCell eCLB(const RegisterCell &A1, bool B, uint16_t W) const;
392 RegisterCell eCTB(const RegisterCell &A1, bool B, uint16_t W) const;
395 RegisterCell eSXT(const RegisterCell &A1, uint16_t FromN) const;
396 RegisterCell eZXT(const RegisterCell &A1, uint16_t FromN) const;
401 RegisterCell eXTR(const RegisterCell &A1, uint16_t B, uint16_t E) const;
402 RegisterCell eINS(const RegisterCell &A1, const RegisterCell &A2,