From b727eaac3cab870bb1a8922f0e0de01665bda8cf Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 9 Aug 2021 07:59:06 +0200 Subject: [PATCH] broadcom/compiler: add a vir_get_cond helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/compiler/v3d_compiler.h | 1 + src/broadcom/compiler/vir.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h index 125a4127fc4..4b66e8621a7 100644 --- a/src/broadcom/compiler/v3d_compiler.h +++ b/src/broadcom/compiler/v3d_compiler.h @@ -1049,6 +1049,7 @@ struct v3d_qpu_instr v3d_qpu_nop(void); struct qreg vir_emit_def(struct v3d_compile *c, struct qinst *inst); struct qinst *vir_emit_nondef(struct v3d_compile *c, struct qinst *inst); void vir_set_cond(struct qinst *inst, enum v3d_qpu_cond cond); +enum v3d_qpu_cond vir_get_cond(struct qinst *inst); void vir_set_pf(struct v3d_compile *c, struct qinst *inst, enum v3d_qpu_pf pf); void vir_set_uf(struct v3d_compile *c, struct qinst *inst, enum v3d_qpu_uf uf); void vir_set_unpack(struct qinst *inst, int src, diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index 259f6bd70eb..7f01f5d2335 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -243,6 +243,19 @@ vir_set_cond(struct qinst *inst, enum v3d_qpu_cond cond) } } +enum v3d_qpu_cond +vir_get_cond(struct qinst *inst) +{ + assert(inst->qpu.type == V3D_QPU_INSTR_TYPE_ALU); + + if (vir_is_add(inst)) + return inst->qpu.flags.ac; + else if (vir_is_mul(inst)) + return inst->qpu.flags.mc; + else /* NOP */ + return V3D_QPU_COND_NONE; +} + void vir_set_pf(struct v3d_compile *c, struct qinst *inst, enum v3d_qpu_pf pf) {