From: Jason Ekstrand Date: Fri, 5 Sep 2014 03:47:40 +0000 (-0700) Subject: i965/fs: Clean up emitting of untyped atomic and surface reads X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e49cfe9bfcdaed31dc701a9c2d544d571f1ad04e;p=mesa.git i965/fs: Clean up emitting of untyped atomic and surface reads Signed-off-by: Jason Ekstrand Reviewed-by: Matt Turner --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 8426ad38952..0206fb0c1d2 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -2685,6 +2685,7 @@ fs_visitor::emit_untyped_atomic(unsigned atomic_op, unsigned surf_index, { const unsigned operand_len = dispatch_width / 8; unsigned mlen = 0; + fs_inst *inst; /* Initialize the sample mask in the message header. */ emit(MOV(brw_uvec_mrf(8, mlen, 0), fs_reg(0u))) @@ -2717,12 +2718,10 @@ fs_visitor::emit_untyped_atomic(unsigned atomic_op, unsigned surf_index, } /* Emit the instruction. */ - fs_inst *inst = new(mem_ctx) fs_inst(SHADER_OPCODE_UNTYPED_ATOMIC, dst, - atomic_op, surf_index); + inst = emit(SHADER_OPCODE_UNTYPED_ATOMIC, dst, atomic_op, surf_index); inst->base_mrf = 0; inst->mlen = mlen; inst->header_present = true; - emit(inst); } void @@ -2731,6 +2730,7 @@ fs_visitor::emit_untyped_surface_read(unsigned surf_index, fs_reg dst, { const unsigned operand_len = dispatch_width / 8; unsigned mlen = 0; + fs_inst *inst; /* Initialize the sample mask in the message header. */ emit(MOV(brw_uvec_mrf(8, mlen, 0), fs_reg(0u))) @@ -2752,12 +2752,10 @@ fs_visitor::emit_untyped_surface_read(unsigned surf_index, fs_reg dst, mlen += operand_len; /* Emit the instruction. */ - fs_inst *inst = new(mem_ctx) - fs_inst(SHADER_OPCODE_UNTYPED_SURFACE_READ, dst, surf_index); + inst = emit(SHADER_OPCODE_UNTYPED_SURFACE_READ, dst, surf_index); inst->base_mrf = 0; inst->mlen = mlen; inst->header_present = true; - emit(inst); } fs_inst *