Mesa (master): panfrost: Move Bifrost IR indexing to common

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 29 15:33:20 UTC 2020


Module: Mesa
Branch: master
Commit: 5860b18665a8d44d164caaf3de080172b91f36e0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5860b18665a8d44d164caaf3de080172b91f36e0

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Mon Apr 27 16:00:38 2020 -0400

panfrost: Move Bifrost IR indexing to common

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4792>

---

 src/panfrost/util/pan_ir.h | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h
index 2d416ffeb21..7eb51fa5df1 100644
--- a/src/panfrost/util/pan_ir.h
+++ b/src/panfrost/util/pan_ir.h
@@ -178,4 +178,36 @@ pan_to_bytemask(unsigned bytes, unsigned mask);
 
 void pan_block_add_successor(pan_block *block, pan_block *successor);
 
+/* IR indexing */
+#define PAN_IS_REG (1)
+
+static inline unsigned
+pan_ssa_index(nir_ssa_def *ssa)
+{
+        /* Off-by-one ensures BIR_NO_ARG is skipped */
+        return ((ssa->index + 1) << 1) | 0;
+}
+
+static inline unsigned
+pan_src_index(nir_src *src)
+{
+        if (src->is_ssa)
+                return pan_ssa_index(src->ssa);
+        else {
+                assert(!src->reg.indirect);
+                return (src->reg.reg->index << 1) | BIR_IS_REG;
+        }
+}
+
+static inline unsigned
+pan_dest_index(nir_dest *dst)
+{
+        if (dst->is_ssa)
+                return pan_ssa_index(&dst->ssa);
+        else {
+                assert(!dst->reg.indirect);
+                return (dst->reg.reg->index << 1) | BIR_IS_REG;
+        }
+}
+
 #endif



More information about the mesa-commit mailing list