On 02/10/2015 11:09 AM, Matt Turner wrote: > We were special casing OPCODE_END but no other instructions that have no > destination, like OPCODE_KIL, leading us to emitting MOVs with null > destinations.
Should we (or do we somehow already) handle instructions with null destinations? So... ADD.sat.nz null, g38, g22 Or is that just impossible? > total instructions in shared programs: 5950886 -> 5947182 (-0.06%) > instructions in affected programs: 139700 -> 135996 (-2.65%) > helped: 904 > --- > src/mesa/drivers/dri/i965/brw_fs_fp.cpp | 2 +- > src/mesa/drivers/dri/i965/brw_vec4_vp.cpp | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp > b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp > index 7f2874d..dd3d331 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp > @@ -517,7 +517,7 @@ fs_visitor::emit_fragment_program_code() > /* To handle saturates, we emit a MOV with a saturate bit, which > * optimization should fold into the preceding instructions when safe. > */ > - if (fpi->Opcode != OPCODE_END) { > + if (_mesa_num_inst_dst_regs(fpi->Opcode) != 0) { > fs_reg real_dst = get_fp_dst_reg(&fpi->DstReg); > > for (int i = 0; i < 4; i++) { > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp > b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp > index 85f2de5..434f032 100644 > --- a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp > +++ b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp > @@ -387,7 +387,7 @@ vec4_vs_visitor::emit_program_code() > } > > /* Copy the temporary back into the actual destination register. */ > - if (vpi->Opcode != OPCODE_END) { > + if (_mesa_num_inst_dst_regs(vpi->Opcode) != 0) { > emit(MOV(get_vp_dst_reg(vpi->DstReg), src_reg(dst))); > } > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev