Re: [Mesa-dev] [PATCH 3/9] i965: Add devinfo parameter to brw_compact_inst_* funcs.
Reviewed-by: Iago Toral QuirogaOn Mon, 2015-10-19 at 21:09 -0700, Matt Turner wrote: > The next commit will add assertions dependent on devinfo->gen. > > Use compact()/uncompact() macros where possible, like the 3-src code > does. > --- > src/mesa/drivers/dri/i965/brw_eu_compact.c | 118 > ++--- > src/mesa/drivers/dri/i965/brw_inst.h | 30 +--- > 2 files changed, 91 insertions(+), 57 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c > b/src/mesa/drivers/dri/i965/brw_eu_compact.c > index b798931..facf3cd 100644 > --- a/src/mesa/drivers/dri/i965/brw_eu_compact.c > +++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c > @@ -690,7 +690,7 @@ set_control_index(const struct brw_device_info *devinfo, > > for (int i = 0; i < 32; i++) { >if (control_index_table[i] == uncompacted) { > - brw_compact_inst_set_control_index(dst, i); > + brw_compact_inst_set_control_index(devinfo, dst, i); >return true; >} > } > @@ -711,7 +711,7 @@ set_datatype_index(const struct brw_device_info *devinfo, > brw_compact_inst *dst, > > for (int i = 0; i < 32; i++) { >if (datatype_table[i] == uncompacted) { > - brw_compact_inst_set_datatype_index(dst, i); > + brw_compact_inst_set_datatype_index(devinfo, dst, i); >return true; >} > } > @@ -732,7 +732,7 @@ set_subreg_index(const struct brw_device_info *devinfo, > brw_compact_inst *dst, > > for (int i = 0; i < 32; i++) { >if (subreg_table[i] == uncompacted) { > - brw_compact_inst_set_subreg_index(dst, i); > + brw_compact_inst_set_subreg_index(devinfo, dst, i); >return true; >} > } > @@ -764,7 +764,7 @@ set_src0_index(const struct brw_device_info *devinfo, > if (!get_src_index(uncompacted, )) >return false; > > - brw_compact_inst_set_src0_index(dst, compacted); > + brw_compact_inst_set_src0_index(devinfo, dst, compacted); > > return true; > } > @@ -784,7 +784,7 @@ set_src1_index(const struct brw_device_info *devinfo, > brw_compact_inst *dst, > return false; > } > > - brw_compact_inst_set_src1_index(dst, compacted); > + brw_compact_inst_set_src1_index(devinfo, dst, compacted); > > return true; > } > @@ -804,7 +804,7 @@ set_3src_control_index(const struct brw_device_info > *devinfo, > > for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_control_index_table); i++) { >if (gen8_3src_control_index_table[i] == uncompacted) { > - brw_compact_inst_set_3src_control_index(dst, i); > + brw_compact_inst_set_3src_control_index(devinfo, dst, i); >return true; >} > } > @@ -838,7 +838,7 @@ set_3src_source_index(const struct brw_device_info > *devinfo, > > for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_source_index_table); i++) { >if (gen8_3src_source_index_table[i] == uncompacted) { > - brw_compact_inst_set_3src_source_index(dst, i); > + brw_compact_inst_set_3src_source_index(devinfo, dst, i); >return true; >} > } > @@ -909,7 +909,7 @@ brw_try_compact_3src_instruction(const struct > brw_device_info *devinfo, >return false; > > #define compact(field) \ > - brw_compact_inst_set_3src_##field(dst, brw_inst_3src_##field(devinfo, > src)) > + brw_compact_inst_set_3src_##field(devinfo, dst, > brw_inst_3src_##field(devinfo, src)) > > compact(opcode); > > @@ -921,7 +921,7 @@ brw_try_compact_3src_instruction(const struct > brw_device_info *devinfo, > > compact(dst_reg_nr); > compact(src0_rep_ctrl); > - brw_compact_inst_set_3src_cmpt_control(dst, true); > + brw_compact_inst_set_3src_cmpt_control(devinfo, dst, true); > compact(debug_control); > compact(saturate); > compact(src1_rep_ctrl); > @@ -1003,36 +1003,47 @@ brw_try_compact_instruction(const struct > brw_device_info *devinfo, > > memset(, 0, sizeof(temp)); > > - brw_compact_inst_set_opcode(, brw_inst_opcode(devinfo, src)); > - brw_compact_inst_set_debug_control(, brw_inst_debug_control(devinfo, > src)); > +#define compact(field) \ > + brw_compact_inst_set_##field(devinfo, , brw_inst_##field(devinfo, > src)) > + > + compact(opcode); > + compact(debug_control); > + > if (!set_control_index(devinfo, , src)) >return false; > if (!set_datatype_index(devinfo, , src)) >return false; > if (!set_subreg_index(devinfo, , src, is_immediate)) >return false; > - brw_compact_inst_set_acc_wr_control(, > - brw_inst_acc_wr_control(devinfo, > src)); > - brw_compact_inst_set_cond_modifier(, > - brw_inst_cond_modifier(devinfo, src)); > + > + compact(acc_wr_control); > + compact(cond_modifier); > + > if (devinfo->gen <= 6) > - brw_compact_inst_set_flag_subreg_nr(, > -
[Mesa-dev] [PATCH 3/9] i965: Add devinfo parameter to brw_compact_inst_* funcs.
The next commit will add assertions dependent on devinfo->gen. Use compact()/uncompact() macros where possible, like the 3-src code does. --- src/mesa/drivers/dri/i965/brw_eu_compact.c | 118 ++--- src/mesa/drivers/dri/i965/brw_inst.h | 30 +--- 2 files changed, 91 insertions(+), 57 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c index b798931..facf3cd 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_compact.c +++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c @@ -690,7 +690,7 @@ set_control_index(const struct brw_device_info *devinfo, for (int i = 0; i < 32; i++) { if (control_index_table[i] == uncompacted) { - brw_compact_inst_set_control_index(dst, i); + brw_compact_inst_set_control_index(devinfo, dst, i); return true; } } @@ -711,7 +711,7 @@ set_datatype_index(const struct brw_device_info *devinfo, brw_compact_inst *dst, for (int i = 0; i < 32; i++) { if (datatype_table[i] == uncompacted) { - brw_compact_inst_set_datatype_index(dst, i); + brw_compact_inst_set_datatype_index(devinfo, dst, i); return true; } } @@ -732,7 +732,7 @@ set_subreg_index(const struct brw_device_info *devinfo, brw_compact_inst *dst, for (int i = 0; i < 32; i++) { if (subreg_table[i] == uncompacted) { - brw_compact_inst_set_subreg_index(dst, i); + brw_compact_inst_set_subreg_index(devinfo, dst, i); return true; } } @@ -764,7 +764,7 @@ set_src0_index(const struct brw_device_info *devinfo, if (!get_src_index(uncompacted, )) return false; - brw_compact_inst_set_src0_index(dst, compacted); + brw_compact_inst_set_src0_index(devinfo, dst, compacted); return true; } @@ -784,7 +784,7 @@ set_src1_index(const struct brw_device_info *devinfo, brw_compact_inst *dst, return false; } - brw_compact_inst_set_src1_index(dst, compacted); + brw_compact_inst_set_src1_index(devinfo, dst, compacted); return true; } @@ -804,7 +804,7 @@ set_3src_control_index(const struct brw_device_info *devinfo, for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_control_index_table); i++) { if (gen8_3src_control_index_table[i] == uncompacted) { - brw_compact_inst_set_3src_control_index(dst, i); + brw_compact_inst_set_3src_control_index(devinfo, dst, i); return true; } } @@ -838,7 +838,7 @@ set_3src_source_index(const struct brw_device_info *devinfo, for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_source_index_table); i++) { if (gen8_3src_source_index_table[i] == uncompacted) { - brw_compact_inst_set_3src_source_index(dst, i); + brw_compact_inst_set_3src_source_index(devinfo, dst, i); return true; } } @@ -909,7 +909,7 @@ brw_try_compact_3src_instruction(const struct brw_device_info *devinfo, return false; #define compact(field) \ - brw_compact_inst_set_3src_##field(dst, brw_inst_3src_##field(devinfo, src)) + brw_compact_inst_set_3src_##field(devinfo, dst, brw_inst_3src_##field(devinfo, src)) compact(opcode); @@ -921,7 +921,7 @@ brw_try_compact_3src_instruction(const struct brw_device_info *devinfo, compact(dst_reg_nr); compact(src0_rep_ctrl); - brw_compact_inst_set_3src_cmpt_control(dst, true); + brw_compact_inst_set_3src_cmpt_control(devinfo, dst, true); compact(debug_control); compact(saturate); compact(src1_rep_ctrl); @@ -1003,36 +1003,47 @@ brw_try_compact_instruction(const struct brw_device_info *devinfo, memset(, 0, sizeof(temp)); - brw_compact_inst_set_opcode(, brw_inst_opcode(devinfo, src)); - brw_compact_inst_set_debug_control(, brw_inst_debug_control(devinfo, src)); +#define compact(field) \ + brw_compact_inst_set_##field(devinfo, , brw_inst_##field(devinfo, src)) + + compact(opcode); + compact(debug_control); + if (!set_control_index(devinfo, , src)) return false; if (!set_datatype_index(devinfo, , src)) return false; if (!set_subreg_index(devinfo, , src, is_immediate)) return false; - brw_compact_inst_set_acc_wr_control(, - brw_inst_acc_wr_control(devinfo, src)); - brw_compact_inst_set_cond_modifier(, - brw_inst_cond_modifier(devinfo, src)); + + compact(acc_wr_control); + compact(cond_modifier); + if (devinfo->gen <= 6) - brw_compact_inst_set_flag_subreg_nr(, - brw_inst_flag_subreg_nr(devinfo, src)); - brw_compact_inst_set_cmpt_control(, true); + compact(flag_subreg_nr); + + brw_compact_inst_set_cmpt_control(devinfo, , true); + if (!set_src0_index(devinfo, , src)) return false; if (!set_src1_index(devinfo, , src, is_immediate)) return false; - brw_compact_inst_set_dst_reg_nr(,