From: Brian Paul Date: Wed, 16 Mar 2016 21:47:41 +0000 (-0600) Subject: tgsi: add tgsi_transform_op3_inst() function X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e9d5e68d1b3f2ce21486a17799e2345bb54116f6;p=mesa.git tgsi: add tgsi_transform_op3_inst() function Reviewed-by: Charmaine Lee --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_transform.h b/src/gallium/auxiliary/tgsi/tgsi_transform.h index 27e6179c9ee..4dd7dda25fd 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_transform.h +++ b/src/gallium/auxiliary/tgsi/tgsi_transform.h @@ -301,6 +301,40 @@ tgsi_transform_op2_inst(struct tgsi_transform_context *ctx, } +static inline void +tgsi_transform_op3_inst(struct tgsi_transform_context *ctx, + unsigned opcode, + unsigned dst_file, + unsigned dst_index, + unsigned dst_writemask, + unsigned src0_file, + unsigned src0_index, + unsigned src1_file, + unsigned src1_index, + unsigned src2_file, + unsigned src2_index) +{ + struct tgsi_full_instruction inst; + + inst = tgsi_default_full_instruction(); + inst.Instruction.Opcode = opcode; + inst.Instruction.NumDstRegs = 1; + inst.Dst[0].Register.File = dst_file, + inst.Dst[0].Register.Index = dst_index; + inst.Dst[0].Register.WriteMask = dst_writemask; + inst.Instruction.NumSrcRegs = 3; + inst.Src[0].Register.File = src0_file; + inst.Src[0].Register.Index = src0_index; + inst.Src[1].Register.File = src1_file; + inst.Src[1].Register.Index = src1_index; + inst.Src[2].Register.File = src2_file; + inst.Src[2].Register.Index = src2_index; + + ctx->emit_instruction(ctx, &inst); +} + + + static inline void tgsi_transform_op1_swz_inst(struct tgsi_transform_context *ctx, unsigned opcode,