intel/eu: Define helper to specify the descriptor immediates of a SEND instruction.
authorFrancisco Jerez <currojerez@riseup.net>
Sat, 2 Jun 2018 20:48:42 +0000 (13:48 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Tue, 10 Jul 2018 06:46:57 +0000 (23:46 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_eu.h
src/intel/compiler/brw_eu_emit.c

index aad2434bcf45db92ec4e1e22b1dbfbf4c63137ed..30c987942c4ca4cb0426e5bda229d8dca71969b0 100644 (file)
@@ -600,6 +600,15 @@ void brw_math_invert( struct brw_codegen *p,
 
 void brw_set_src1(struct brw_codegen *p, brw_inst *insn, struct brw_reg reg);
 
+void brw_set_desc_ex(struct brw_codegen *p, brw_inst *insn,
+                     unsigned desc, unsigned ex_desc);
+
+static inline void
+brw_set_desc(struct brw_codegen *p, brw_inst *insn, unsigned desc)
+{
+   brw_set_desc_ex(p, insn, desc, 0);
+}
+
 void brw_set_uip_jip(struct brw_codegen *p, int start_offset);
 
 enum brw_conditional_mod brw_negate_cmod(uint32_t cmod);
index 46e34d3ba9a61ca16f9da5629e7d30242272c966..5ac1498f0fc413745297c0c79058552f1afd69e0 100644 (file)
@@ -401,6 +401,23 @@ brw_set_message_descriptor(struct brw_codegen *p,
    }
 }
 
+/**
+ * Specify the descriptor and extended descriptor immediate for a SEND(C)
+ * message instruction.
+ */
+void
+brw_set_desc_ex(struct brw_codegen *p, brw_inst *inst,
+                unsigned desc, unsigned ex_desc)
+{
+   const struct gen_device_info *devinfo = p->devinfo;
+   brw_inst_set_src1_file_type(devinfo, inst,
+                               BRW_IMMEDIATE_VALUE, BRW_REGISTER_TYPE_D);
+   brw_inst_set_send_desc(devinfo, inst, desc);
+   if (devinfo->gen >= 9 && (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND ||
+                             brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SENDC))
+      brw_inst_set_send_ex_desc(devinfo, inst, ex_desc);
+}
+
 static void brw_set_math_message( struct brw_codegen *p,
                                  brw_inst *inst,
                                  unsigned function,