Lines Matching refs:RegClass

307 struct RegClass {
337 RegClass() = default;
338 constexpr RegClass(RC rc_) : rc(rc_) {}
339 constexpr RegClass(RegType type, unsigned size)
353 constexpr RegClass as_linear() const { return RegClass((RC)(rc | (1 << 6))); }
354 constexpr RegClass as_subdword() const { return RegClass((RC)(rc | 1 << 7)); }
356 static constexpr RegClass get(RegType type, unsigned bytes)
359 return RegClass(type, DIV_ROUND_UP(bytes, 4u));
361 return bytes % 4u ? RegClass(type, bytes).as_subdword() : RegClass(type, bytes / 4u);
365 constexpr RegClass resize(unsigned bytes) const
379 static constexpr RegClass s1{RegClass::s1};
380 static constexpr RegClass s2{RegClass::s2};
381 static constexpr RegClass s3{RegClass::s3};
382 static constexpr RegClass s4{RegClass::s4};
383 static constexpr RegClass s8{RegClass::s8};
384 static constexpr RegClass s16{RegClass::s16};
385 static constexpr RegClass v1{RegClass::v1};
386 static constexpr RegClass v2{RegClass::v2};
387 static constexpr RegClass v3{RegClass::v3};
388 static constexpr RegClass v4{RegClass::v4};
389 static constexpr RegClass v5{RegClass::v5};
390 static constexpr RegClass v6{RegClass::v6};
391 static constexpr RegClass v7{RegClass::v7};
392 static constexpr RegClass v8{RegClass::v8};
393 static constexpr RegClass v1b{RegClass::v1b};
394 static constexpr RegClass v2b{RegClass::v2b};
395 static constexpr RegClass v3b{RegClass::v3b};
396 static constexpr RegClass v4b{RegClass::v4b};
397 static constexpr RegClass v6b{RegClass::v6b};
398 static constexpr RegClass v8b{RegClass::v8b};
408 constexpr Temp(uint32_t id, RegClass cls) noexcept : id_(id), reg_class(uint8_t(cls)) {}
411 constexpr RegClass regClass() const noexcept { return (RegClass::RC)reg_class; }
646 explicit Operand(RegClass type) noexcept
652 explicit Operand(PhysReg reg, RegClass type) noexcept
730 constexpr RegClass regClass() const noexcept { return data_.temp.regClass(); }
899 Definition(uint32_t index, RegClass type) noexcept : temp(index, type) {}
901 Definition(PhysReg reg, RegClass type) noexcept : temp(Temp(0, type)) { setFixed(reg); }
902 Definition(uint32_t tmpId, PhysReg reg, RegClass type) noexcept : temp(Temp(tmpId, type))
917 constexpr RegClass regClass() const noexcept { return temp.regClass(); }
2039 std::vector<RegClass> temp_rc = {s1};
2049 RegClass lane_mask;
2085 uint32_t allocateId(RegClass rc)
2099 Temp allocateTmp(RegClass rc) { return Temp(allocateId(rc), rc); }