From 8a35a989369c66d77bc9182c5198d9c3cf881f93 Mon Sep 17 00:00:00 2001 From: Aksel Hjerpbakk Date: Tue, 22 Jul 2025 09:44:13 +0000 Subject: [PATCH] panvk: implement cs_extract64 & cs_extract_tuple Reviewed-by: Christoph Pillmayer Reviewed-by: Lars-Ivar Hesselberg Simonsen Part-of: --- src/panfrost/genxml/cs_builder.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/panfrost/genxml/cs_builder.h b/src/panfrost/genxml/cs_builder.h index 2a591396d6e..04733f12eef 100644 --- a/src/panfrost/genxml/cs_builder.h +++ b/src/panfrost/genxml/cs_builder.h @@ -492,6 +492,25 @@ cs_extract32(struct cs_builder *b, struct cs_index idx, unsigned word) return cs_reg32(b, idx.reg + word); } +static inline struct cs_index +cs_extract64(struct cs_builder *b, struct cs_index idx, unsigned word) +{ + assert(idx.type == CS_INDEX_REGISTER && "unsupported"); + assert(word + 1 < idx.size && "overrun"); + + return cs_reg64(b, idx.reg + word); +} + +static inline struct cs_index +cs_extract_tuple(struct cs_builder *b, struct cs_index idx, unsigned word, + unsigned size) +{ + assert(idx.type == CS_INDEX_REGISTER && "unsupported"); + assert(word + size < idx.size && "overrun"); + + return cs_reg_tuple(b, idx.reg + word, size); +} + static inline struct cs_block * cs_cur_block(struct cs_builder *b) {