Module: Mesa Branch: master Commit: 5860b18665a8d44d164caaf3de080172b91f36e0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5860b18665a8d44d164caaf3de080172b91f36e0
Author: Alyssa Rosenzweig <[email protected]> Date: Mon Apr 27 16:00:38 2020 -0400 panfrost: Move Bifrost IR indexing to common Signed-off-by: Alyssa Rosenzweig <[email protected]> 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 _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
