vc4: Replace the qinst src[] with a fixed-size array.
This may have made a tiny bit of sense when we had one 4-arg inst per shader, but if we only ever put 2 things in, having a pointer to 2 things almost every instruction is pointless indirection.
This commit is contained in:
parent
a220f1b5a9
commit
51087327f2
|
@ -477,7 +477,6 @@ qir_inst(enum qop op, struct qreg dst, struct qreg src0, struct qreg src1)
|
|||
|
||||
inst->op = op;
|
||||
inst->dst = dst;
|
||||
inst->src = calloc(2, sizeof(inst->src[0]));
|
||||
inst->src[0] = src0;
|
||||
inst->src[1] = src1;
|
||||
inst->cond = QPU_COND_ALWAYS;
|
||||
|
@ -598,7 +597,6 @@ qir_remove_instruction(struct vc4_compile *c, struct qinst *qinst)
|
|||
c->defs[qinst->dst.index] = NULL;
|
||||
|
||||
list_del(&qinst->link);
|
||||
free(qinst->src);
|
||||
free(qinst);
|
||||
}
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ struct qinst {
|
|||
|
||||
enum qop op;
|
||||
struct qreg dst;
|
||||
struct qreg *src;
|
||||
struct qreg src[2];
|
||||
bool sf;
|
||||
bool cond_is_exec_mask;
|
||||
uint8_t cond;
|
||||
|
|
|
@ -288,7 +288,7 @@ vc4_generate_code_block(struct vc4_compile *c,
|
|||
};
|
||||
|
||||
uint64_t unpack = 0;
|
||||
struct qpu_reg src[4];
|
||||
struct qpu_reg src[ARRAY_SIZE(qinst->src)];
|
||||
for (int i = 0; i < qir_get_op_nsrc(qinst->op); i++) {
|
||||
int index = qinst->src[i].index;
|
||||
switch (qinst->src[i].file) {
|
||||
|
|
Loading…
Reference in New Issue