i965/fs: Make null_reg_* const members of fs_visitor instead of globals

We also set the register width equal to the dispatch width.  Right now,
this is effectively a no-op since we don't do anything with it.  However,
it will be important once we add an actual width field to fs_reg.

Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Jason Ekstrand 2014-09-10 11:28:27 -07:00
parent ab7234c852
commit 1c89e098e8
3 changed files with 12 additions and 3 deletions

View file

@ -134,9 +134,6 @@ half(const fs_reg &reg, unsigned idx)
}
static const fs_reg reg_undef;
static const fs_reg reg_null_f(retype(brw_null_reg(), BRW_REGISTER_TYPE_F));
static const fs_reg reg_null_d(retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
static const fs_reg reg_null_ud(retype(brw_null_reg(), BRW_REGISTER_TYPE_UD));
class ip_record : public exec_node {
public:
@ -206,6 +203,9 @@ public:
class fs_visitor : public backend_visitor
{
public:
const fs_reg reg_null_f;
const fs_reg reg_null_d;
const fs_reg reg_null_ud;
fs_visitor(struct brw_context *brw,
void *mem_ctx,

View file

@ -3315,6 +3315,9 @@ fs_visitor::fs_visitor(struct brw_context *brw,
unsigned dispatch_width)
: backend_visitor(brw, shader_prog, &fp->Base, &prog_data->base,
MESA_SHADER_FRAGMENT),
reg_null_f(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_F)),
reg_null_d(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_D)),
reg_null_ud(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_UD)),
key(key), prog_data(&prog_data->base),
dispatch_width(dispatch_width)
{

View file

@ -602,6 +602,12 @@ brw_null_reg(void)
return brw_vec8_reg(BRW_ARCHITECTURE_REGISTER_FILE, BRW_ARF_NULL, 0);
}
static inline struct brw_reg
brw_null_vec(unsigned width)
{
return brw_vecn_reg(width, BRW_ARCHITECTURE_REGISTER_FILE, BRW_ARF_NULL, 0);
}
static inline struct brw_reg
brw_address_reg(unsigned subnr)
{