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