Also allows us to handle HW_REGs in the swizzle() and writemask()
functions.
Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
explicit src_reg(const dst_reg ®);
explicit src_reg(const dst_reg ®);
- unsigned swizzle; /**< BRW_SWIZZLE_XYZW macros from brw_reg.h. */
-
static inline src_reg
swizzle(src_reg reg, unsigned swizzle)
{
static inline src_reg
swizzle(src_reg reg, unsigned swizzle)
{
- assert(reg.file != HW_REG);
reg.swizzle = brw_compose_swizzle(swizzle, reg.swizzle);
return reg;
}
reg.swizzle = brw_compose_swizzle(swizzle, reg.swizzle);
return reg;
}
bool equals(const dst_reg &r) const;
bool equals(const dst_reg &r) const;
- unsigned writemask; /**< Bitfield of WRITEMASK_[XYZW] */
-
static inline dst_reg
writemask(dst_reg reg, unsigned mask)
{
static inline dst_reg
writemask(dst_reg reg, unsigned mask)
{
- assert(reg.file != HW_REG && reg.file != IMM);
+ assert(reg.file != IMM);
assert((reg.writemask & mask) != 0);
reg.writemask &= mask;
return reg;
assert((reg.writemask & mask) != 0);
reg.writemask &= mask;
return reg;
this->file = HW_REG;
this->reg = 0;
this->reg_offset = 0;
this->file = HW_REG;
this->reg = 0;
this->reg_offset = 0;
- this->swizzle = BRW_SWIZZLE_XXXX;
this->file = HW_REG;
this->reg = 0;
this->reg_offset = 0;
this->file = HW_REG;
this->reg = 0;
this->reg_offset = 0;
- this->writemask = WRITEMASK_XYZW;