i965/reg: Make brw_sr0_reg take a subnr and return a vec1 reg
The state register sr0 is really a collection of dwords not a SIMD8 anything. It's much more convenient for brw_sr0_reg to return the particular dword you're looking for rather than a giant blob you have to massage into what you want. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> [ Francisco Jerez: Trivial simplification of brw_ud1_reg(). ] Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
committed by
Francisco Jerez
parent
b8162d6b6e
commit
a2392cee48
@@ -6185,7 +6185,7 @@ fs_visitor::run_cs()
|
||||
if (devinfo->is_haswell && prog_data->total_shared > 0) {
|
||||
/* Move SLM index from g0.0[27:24] to sr0.1[11:8] */
|
||||
const fs_builder abld = bld.exec_all().group(1, 0);
|
||||
abld.MOV(retype(suboffset(brw_sr0_reg(), 1), BRW_REGISTER_TYPE_UW),
|
||||
abld.MOV(retype(brw_sr0_reg(1), BRW_REGISTER_TYPE_UW),
|
||||
suboffset(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW), 1));
|
||||
}
|
||||
|
||||
|
||||
@@ -566,6 +566,12 @@ brw_uw1_reg(enum brw_reg_file file, unsigned nr, unsigned subnr)
|
||||
return suboffset(retype(brw_vec1_reg(file, nr, 0), BRW_REGISTER_TYPE_UW), subnr);
|
||||
}
|
||||
|
||||
static inline struct brw_reg
|
||||
brw_ud1_reg(enum brw_reg_file file, unsigned nr, unsigned subnr)
|
||||
{
|
||||
return retype(brw_vec1_reg(file, nr, subnr), BRW_REGISTER_TYPE_UD);
|
||||
}
|
||||
|
||||
static inline struct brw_reg
|
||||
brw_imm_reg(enum brw_reg_type type)
|
||||
{
|
||||
@@ -789,19 +795,9 @@ brw_notification_reg(void)
|
||||
}
|
||||
|
||||
static inline struct brw_reg
|
||||
brw_sr0_reg(void)
|
||||
brw_sr0_reg(unsigned subnr)
|
||||
{
|
||||
return brw_reg(BRW_ARCHITECTURE_REGISTER_FILE,
|
||||
BRW_ARF_STATE,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
BRW_REGISTER_TYPE_UD,
|
||||
BRW_VERTICAL_STRIDE_8,
|
||||
BRW_WIDTH_8,
|
||||
BRW_HORIZONTAL_STRIDE_1,
|
||||
BRW_SWIZZLE_XYZW,
|
||||
WRITEMASK_XYZW);
|
||||
return brw_ud1_reg(BRW_ARCHITECTURE_REGISTER_FILE, BRW_ARF_STATE, subnr);
|
||||
}
|
||||
|
||||
static inline struct brw_reg
|
||||
|
||||
Reference in New Issue
Block a user