Mesa (main): broadcom/compiler: add a vir_get_cond helper

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 10 09:03:21 UTC 2021


Module: Mesa
Branch: main
Commit: b727eaac3cab870bb1a8922f0e0de01665bda8cf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b727eaac3cab870bb1a8922f0e0de01665bda8cf

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Mon Aug  9 07:59:06 2021 +0200

broadcom/compiler: add a vir_get_cond helper

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12278>

---

 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)
 {



More information about the mesa-commit mailing list