summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/ir3/ir3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/ir3.h')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h
index aaa0ff6efa8..b1fb08fcec5 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3.h
+++ b/src/gallium/drivers/freedreno/ir3/ir3.h
@@ -106,8 +106,6 @@ struct ir3_register {
};
};
-#define IR3_INSTR_SRCS 10
-
struct ir3_instruction {
struct ir3_block *block;
int category;
@@ -166,8 +164,11 @@ struct ir3_instruction {
IR3_INSTR_MARK = 0x1000,
} flags;
int repeat;
+#ifdef DEBUG
+ unsigned regs_max;
+#endif
unsigned regs_count;
- struct ir3_register *regs[1 + IR3_INSTR_SRCS];
+ struct ir3_register **regs;
union {
struct {
char inv;
@@ -320,6 +321,8 @@ struct ir3_block * ir3_block_create(struct ir3 *shader,
struct ir3_instruction * ir3_instr_create(struct ir3_block *block,
int category, opc_t opc);
+struct ir3_instruction * ir3_instr_create2(struct ir3_block *block,
+ int category, opc_t opc, int nreg);
struct ir3_instruction * ir3_instr_clone(struct ir3_instruction *instr);
const char *ir3_instr_name(struct ir3_instruction *instr);