pan/bi: Route through clause header
[mesa.git] / src / panfrost / bifrost / compiler.h
index b69c0fee5e7ad72d6b5aeddb89b786b5366ed090..3c84c2671d52cc37782f6430c37e42bce8f9348a 100644 (file)
@@ -113,6 +113,11 @@ extern unsigned bi_class_props[BI_NUM_CLASSES];
 /* Intrinsic is vectorized and should read 4 components regardless of writemask */
 #define BI_VECTOR (1 << 8)
 
+/* Use a data register for src0/dest respectively, bypassing the usual
+ * register accessor. Mutually exclusive. */
+#define BI_DATA_REG_SRC (1 << 9)
+#define BI_DATA_REG_DEST (1 << 10)
+
 /* It can't get any worse than csel4... can it? */
 #define BIR_SRC_COUNT 4
 
@@ -302,12 +307,18 @@ typedef struct {
         bool back_to_back;
         bool branch_conditional;
 
+        /* Assigned data register */
+        unsigned data_register;
+
         /* Corresponds to the usual bit but shifted by a clause */
         bool data_register_write_barrier;
 
         /* Constants read by this clause. ISA limit. */
         uint64_t constants[8];
         unsigned constant_count;
+
+        /* What type of high latency instruction is here, basically */
+        unsigned clause_type;
 } bi_clause;
 
 typedef struct bi_block {